补码怎么算,原码反码补码怎么算( 四 )


参考资料:


补码的补码怎么求? 正数的补码与原码相同 。 负数的补码的符号位为1 , 其余位为该数绝对值的原码按位取反 , 然后整个数加1 。
在计算机系统中 , 数值一律用补码来表示和存储 。 原因在于 , 使用补码 , 可以将符号位和数值域统一处理;同时 , 加法和减法也可以统一处理 。 以补码定义式为基础 , 沿数轴列出典型的真值、原码与补码表示 , 可清楚了解补码的有关性质 。
补码的优点:
补码系统的最大优点是可以在加法或减法处理中 , 不需因为数字的正负而使用不同的计算方式 。 只要一种加法电路就可以处理各种有符号数加法 , 而且减法可以用一个数加上另一个数的补码来表示 , 因此只要有加法电路和补码电路即可以完成各种有符号数加法和减法 , 在电路设计上相当方便 。
另外 , 补码系统的 0 就只有一个表示方式 , 这和反码系统不同(在反码系统中 , 0 有两种表示方式) , 因此在判断数字是否为 0 时 , 只要比较一次即可 。 下图是一些 8 位补码系统的整数 , 它可表示的范围包括 -128 到 127 , 总共 256 个整数 。
【补码怎么算,原码反码补码怎么算】以上内容参考

知道 补码 , 如何 计算 原码 补码的运算:
一、补码加法
[X+Y]补 = [X]补 + [Y]补
例:X=+0110011,Y=-0101001 , 求[X+Y]补
[X]补=00110011 [Y]补=11010111
[X+Y]补 = [X]补 + [Y]补 = 00110011+11010111=00001010
注:因为计算机中运算器的位长是固定的 , 上述运算中产生的最高位进位将丢掉 , 所以结果不是100001010 , 而是00001010 。
二、补码减法
[X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补
其中[-Y]补称为负补 , 求负补的方法是:负数的绝对值的原码所有位按位取反;然后整个数加1 。
例:1+(-1) [十进制]
1的原码00000001 转换成补码:00000001
-1的原码10000001 转换成补码:11111111
1+(-1)=0
00000001+11111111=00000000
00000000转换成十进制为0
0=0所以运算正确 。
三、补码乘法
设被乘数【X】补=X0.X1X2……Xn-1 , 乘数【Y】补=Y0.Y1Y2……Yn-1,
【X*Y】补=【X】补×【Y】补 , 即乘数(被乘数)相乘的补码等于补码的相乘 。
补码的加法是怎么算的? 在计算机系统中 , 数值一律用补码来表示(存储) 。
加法
[X+Y]补 = [X]补 + [Y]补
减法
[X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补
补码乘法
被乘数[X]补=X0.X1X2……Xn-1 , 乘数[Y]补=Y0.Y1Y2……Yn-1,
c语言中补码怎么算的 补码的设计目的是:
⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.
⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计 所有这些转换都是在计算机的最底层进行的 , 而在我们使用的汇编、C等其他高级语言中使用的都是原码 。
负数的补码就是对反码加1 , 而正数不变 , 正数的原码反码补码是一样的 。

推荐阅读