当前位置:百问九>百科词库>0的原码,补码,反码是什么

0的原码,补码,反码是什么

2023-06-06 09:53:06 编辑:zane 浏览量:613

0的原码,补码,反码是什么

整数(正整数、负整数、零),是以各种代码,存入计算机的。

要知道,天下带闭,只有一个零。

零,既不是正数,也不是负数。 这可是小学的知识。

但是,计算机砖家,硬给零,强加了一个符号位!

于是,在原码反码中,就都为一个零,编造了正负两个代码。

零的原码,有两个:0000 0000、1000 0000。

反码,也是两个:0000 0000、1111 1111。

这些砖家,这就是要“上天”哪!

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

原码和反码,都是重复定义了“零的编码”,这就造成了混乱。

而且,零多占用一组代码,那么,所能表示的数字,必然就少一个。

因此,八位的原码反码,都不能表示-128。

这就导致了:【原码和反码,计算机都无法使用】。

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

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

补码的理论,来源于数学的规律,并非是人为的胡编乱造。

0 的八位补码,只有一个,就是:0000 0000。

零,在补码中,只用唯一的一组代码来表示,这就不会产生混乱。

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

求补码,书上介绍的方法,就是:取反加一。

但是,原码反码中,都是没有 0 和-128。

(虽然原码反码都有 +0 和-0,但是它们毕竟不是 0。)

谁再想用“取反加一”,就要 Duang、Duang 的碰壁了。

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

那么,0 和-128 的补码,都是怎么求出来的?

补码,有自己的定义式,与悉拍原码反码,并无关系。

这定义式,是由数学理论推导出来的,要比胡说八道的“取反加一”更准确严密。

 当 X >= 0:  [ X ]补码 =  X;

 当 X < 0:蠢陆裂  [ X ]补码 =  X + 2^n, n 是补码的位数。

按照定义式,0 和-128 的八位补码,都可以求出来了。

 [ 0 ]补码 = 0000 0000。

 [-128]补码 = -128 + 2^8 = 128 = 1000 0000 (二进制)。

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

如果按照“取反加一”,零的补码,也将是“负零的反码+1”。

那么,[-0 ]补码,就是:0000 0000!

发现有点诡异呀?

-0,不是负数吗? 其补码的符号位。怎么是(0)正的!

哪位计算机砖家来解释解释。。。

版权声明:文章由 百问九 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.baiwen9.com/tips/217841.html
热门文章
二维码