因为数据在计算机中都是以二进制表示的,编译系统对于不同类型的变量分配不同大小的存贮空间,制定不同的取值范围.比如整型在计算机中的存储用2个字节16位的存储空间,其中的最高位代表符号位的,符号位为0表示的是正数,符号位为1表示为负数,整型数据在内存中以二进制的补码存放.
以10和-10说明正数在内存中的存放形式:
十进制 10 -10
二进制原码 0000000000001010 1000000000001010
二进制反码 0000000000001010 1111111111110101
二进制补码 0000000000001010 1111111111110110
楼主一看便知的,此处我是举的字长为16位的时候的,8位的时候只需要去除中间的8位即可的.当为负数的时候,首位为1,不管是原码、反码还是补码都不变的,补码是在原码的基础上加1得到的,反码是在原码的基础上除了首位而外全部取反得到的.