正数的原码反码补码到底是不是一样的?

如题所述

C语言里正数的原码反码补码是一样的。

符号位是0,原码,反码,补码:00001010;

补码是为负数想出来的办法,目的是减法可以用加补码的方法实现。补码可用反码加1得来,于是又有了负数的反码。

计算机里有硬件“加法器”,有了补码,减法也可以用加法器做了。计算机里运算速度,硬件远快于软件,这是做出反码,补码和原码的原因。

扩展资料

1、原码的优点

简单直观,例如:用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011;

原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中。

2、原码的缺点

例:00000001+10000001=10000010,换算成十进制为-2。显然出错了。

所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。

参考资料来源:百度百科—反码

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-16

在计算机中,负数以“其正值的补码形式”表示。

计算机,并不使用原码和反码。

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

那么,计算机只需配置一个加法器,便可横行天下了!

正数,它已经就是正数!

零和正数,不用变换,也不许变换,必须直接进行计算。

所以,正数,根本就没有“任何码”。

另外,计算机中,也没有原码和反码。

相同、不相同?

讨论这个,哪有什么意义!

相似回答