原码、反码和补码
- 反码:正数的反码与原码相同,负数的反码符号位不变,其余按位取反
- 补码:正数的补码与原码相同,负数的反码符号位不变,其余按位取反+1
负数在计算机用补码存储,而正数,原码补码都一样(正数负数在计算机中都是用补码来描述的)
举个例子:
5-1=5+(-1) 直觉上 0b101 - 0b1 = 0b100 =4,其实在计算机中是0b101+0b1111 1111,溢出位舍弃
具体过程:
于是 5+(-1)即:
101
1
1
那么12的取反~12是多少呢?
取反+1即: 1000 1100+1=1000 1101= -13
文章来源: 原码、反码和补码的小知识