原码:正数转变为二进制即为该数的原码,负数需要将最高位(符号位)改为1
补码:若符号位为1,对数值位取反
补码:若符号位为1,对数值位取反后+1
移码:在正数的符号位取1,负数符号位取0且对数值位取反+1
类型 | +7 | -7 | 7+ (-7) | 结果 |
---|---|---|---|---|
原码 | 0000 0111 | 1000 0111 | 1000 1110 | -14 |
反码 | 0000 0111 | 1111 1000 | 1111 1111 | -0 |
补码 | 0000 0111 | 1111 1001 | 0000 0000 | 0 |
移码 | 1000 0111 | 0111 1001 | 1000 0000 | 0 |
以7-7为例
从表格可以看出 原码不适合做运算
反码计算结果正确,却存在±0
补码计算结果且存在唯一0(000 0000)
移码常用作于浮点数的阶码