数字在机器中都用二进制来进行存储,有符号数则有原码、反码和补码三种表示方式
这三种表示方式里,最高位都代表的是符号位,1代表负数,0代表正数
1.原码
一个数的原码就是该数直接转化成二进制得到的数字,第一位是符号位
+8的原码:0000 1000
-8的原码:1000 1000
2.反码
正数的反码是自己本身
+8的原码:0000 1000
+8的反码:0000 1000
负数反码就是原码除了符号位不动,其他所有位按位取反
-8的原码:1000 1000
-8的反码:1111 0111
3.补码
正数的补码是自己本身
+8的原码:0000 1000
+8的反码:0000 1000
+8的补码:0000 1000
负数的补码是反码加一得到的(运算时包括符号位)
-8的原码:1000 1000
-8的反码:1111 0111
-8的补码:1111 1000
正数的原反补码都是相等的,负数的原反补码是相互转换得到的