C语言里正数的原码反码补码是一样的。
符号位是0,原码,反码,补码:00001010;
补码是为负数想出来的办法,目的是减法可以用加补码的方法实现。补码可用反码加1得来,于是又有了负数的反码。
计算机里有硬件“加法器”,有了补码,减法也可以用加法器做了。计算机里运算速度,硬件远快于软件,这是做出反码,补码和原码的原因。
扩展资料
1、原码的优点
简单直观,例如:用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011;
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中。
2、原码的缺点
例:00000001+10000001=10000010,换算成十进制为-2。显然出错了。
所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。
参考资料来源:百度百科—反码
在计算机中,负数以“其正值的补码形式”表示。
计算机,并不使用原码和反码。
在使用了补码之后,计算机就没有负数了,也没有了减法运算。
那么,计算机只需配置一个加法器,便可横行天下了!
正数,它已经就是正数!
零和正数,不用变换,也不许变换,必须直接进行计算。
所以,正数,根本就没有“任何码”。
另外,计算机中,也没有原码和反码。
相同、不相同?
讨论这个,哪有什么意义!