原码,补码
00000100 +4
10000100 -4 原码(第一位是符号位)
00000100 +4 补码(正数情况下,原码和补码表示一样)
11111100 -4 补码(负数情况下,按位取反,再加一)
计算机用补码表示负数的原因:
(1)保证二进制数中只有一个用来表示0,+0 和 -0是一致的
00000000 +0
用补码来表示-0就是在上面二进制数的上面按位取反再加一
100000000 -0
(因为一个字节是八位,所以会舍去最高位的1,就保证了+0和-0的一致性)
(2)在运算中,如果有负数参与运算,用原码来进行加法会发生符号位错误,一直为负
用补码先将一个整数变成负数(按位取反再加一),在进行相加,舍掉最高位的1;就能得到正确答案