以下在32位机中进行讨论
原码
原码:最高位为0为正,1为负,那么5和-5分别表示为
00000000 00000000 00000000 00000101 //为5
10000000 00000000 00000000 00000101 //为-5
反码
反码:如果是正数,则表示方法和原码一样;如果是负数,符号位不变,其余各位取反,则得到这个数字的反码表示形式。(反码的出现是为了解决正负数的运算问题)
5的反码为:00000000 00000000 00000000 00000101
-5的反码为:11111111 11111111 11111111 11111010
补码
补码:如果是整数,则表示方法和原码一样;如果是负数,则将该数的反码加上1(相当于将原码数值位取反然后在最低位加1)。
5的补码为 :00000000 00000000 00000000 00000101
-5的补码为:11111111 11111111 11111111 11111011
在计算机中参与运算时负数一般用其补码进行运算
0的反码、补码都为0
特例
原码为形如:
补码为: