补码与原码

在计算机系统中,数值一律用补码来表示(存储)。

主要原因 :使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

补码与原码的转换过程几乎是相同的。

数值的补码表示也分两种情况:

(1)正数的补码:与原码相同。

例如,+9的补码是00001001。

(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

例如,-7的补码:因为是负数,则符号位为"1",整个为10000111;其余7位为-7的绝对值+7的原码 0000111按位取反为1111000;再加1,所以-7的补码是11111001。

已知一个数的补码,求原码 的操作分两种情况:

(1)如果补码的符号位为"0",表示是一个正数,所以补码就是该数的原码。

(2)如果补码的符号位为"1",表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。

例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为"1",表示是一个负数,所以该位不变,仍为 "1";其余7位1111001取反后为0000110;再加1,所以是10000111。

相关推荐
Zootopia62634 分钟前
美国载人飞船Crew-13明晚发射!
人工智能·算法·机器学习·数学建模·无人机·创业创新·信息与通信
zhangfeng11331 小时前
qjlDim 含义 TurboQuant QJL Quantized Johnson-Lindenstrauss,量化JL随机投影
人工智能·算法·ai编程·npu
HwJack201 小时前
【HarmonyOS开发小实践】HarmonyOS GC 引用计数 vs 对象追踪,三种回收算法
jvm·算法·harmonyos
blxr_1 小时前
力扣hot100前k个高频元素https://leetcode.cn/problems/top-k-frequent-elements/
算法·leetcode·职场和发展
longlongzihan10 小时前
LeetCode 17电话号码的字母组合:回溯算法(DFS)详解
c++·算法·leetcode·深度优先
封印师请假去地球钓鱼11 小时前
边解边变的问题:从“决策依赖“一词出发
人工智能·算法
今晚打老虎11 小时前
c++之提高A(前缀和)(第三课)
数据结构·c++·算法
通信仿真爱好者12 小时前
第【130】期--OFDM系统中LS、MMSE与DFT信道估计方法的仿真--matlab完整代码
matlab·ofdm·dft·ls·信道估计·mmse
不会就选b12 小时前
算法日常・每日刷题--<贪心>26
数据结构·算法
hetao173383714 小时前
2026-09-29 hetao1733837 的刷题记录
c++·算法