什么是原码,反码,补码

2025-02-06 07:07:42
推荐回答(3个)
回答1:

一句两句 很难解释 让你看一篇博客吧  取其精华 去其糟粕 

网页链接

或者请死记硬背下面几句话:

  • 所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

  • 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

  • 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

  • 注意(请死记硬背):(-128)没有相对应的原码和反码,(-128) = (10000000)。

回答2:

回答3:

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

原码和反码,在计算机中,都不存在。

原码和反码,都是什么,就不必关心了。

补码,就是一个“代替负数”的正数。

使用了补码之后,计算机中,就没有负数了,同时,也就没有减法运算了。

使用补码的目的,就是:简化硬件。

----------------

补码(正数),怎么就能代替负数呢?

用十进制来说明,比较容易理解。

你看:

   25 - 1 = 24

   25 + 99 = (一百) 24

你如果舍弃进位,+99 就能代替-1;加法,也就能代替减法。

同样,+98 也可以代替-2。

。。。

这些正数,就是“负数的补数”。

公式:  补数 = 负数 + 10^n, n 是补数的位数。

----------------------

计算机用二进制,补数,就叫做补码了。

对于 8 位 2 进制,补码 = 负数 + 2^8 = 负数 + 256。

所以,-1 的补码就是 255 = 1111 1111 (二进制)。

-2 的补码就是 1111 1110。

。。。

正数,不需要变换,必须直接参与运算。

所以,正数,它就没有补码。

----------------------

求 7-2 = 5,用补码计算如下:

     +7 = 0000 0111

   [-2]补  = 1111 1110

---相加-------------

   得: (1)  0000 0101  = +5

舍弃进位,结果,就是非常正确的。

----------------------

补码,就是补码,与原码反码毫无关系。

补码,本来,是很简单的,也很容易理解的。

但是,从“原码反码取反加一。。。”来学习补码,就不容易理解了。

那么,“原码反码。。。”,是哪里来的?

老外脑子不好用,所以才弄出这些骚操作。