1、0的原码和补码
0可以是+0,也可以是-0
0的原码为:10000(-0),00000(+0)
+0的补码和原码相同,为00000
-0的补码是在-0的原码(10000)的基础上,符号位不变,其它位按位取反再在低位加1(11111+1=00000),进而得到-0的补码00000
所以补码表示0只有一种情况00000。而原码则表示了两次,分别为10000和00000.
2、127的原码和反码
-127 11111111 原码
-127 10000001 补码
3、-128的原码和补码
用10000000 表示-128,因为只有这个在表达补码时表示没有被使用;对于多字节也可以这样推出来。(-128)没有相对应的原码和反码。
4、引入补码,将加、减运算简化为单纯的相加运算,以便于在计算机中实现各种运算。微机内部,带符号数均用补码表示,无符号数直接用原码表示。采用补码进行运算后,结果也是补码,欲得真值,需作转换。
负数的补码就是对反码加一,而正数不变。
原文:
http://blog.sina.com.cn/s/blog_6323dcbb0101g051.html
http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
http://blog.csdn.net/njuitjf/article/details/4585247