原码,补码,反码,移码(二进制编码的形式)
首位是符号位(0->正,1 ->负),后续位为数值的绝对值
原码:最直接的表示法。
移码:原码基础上加上一个数
定点整数:符号位+数值位
正数的原码,补码,反码相同
x = +9 = +1001
原码:01001
反码:01001 (正数的补码和原码一样)
补码:01001 (正数的补码和原码一样)
x = -9 = -1001
原码:11001
反码:10110 (符号位不变,其他位取反)
补码:10111 (符号位不变,其他位取反后加上1)
定点小数:符号位+小数点+数值位
正数的原码,补码,反码相同
(这里补充一下二进制小数转换为十进制数的一个例子)
0.1001 = 1*2^-1 + 0*2^-2 + 0*2^-3 + 1*2^-4= 0.5 + 0 + 0 +0.0625 = 0.5625
x = +0.5625
原码:0.1001
反码:0.1001
补码:0.1001
x = -0.5625
原码:1.1001
反码:1.0111 (符号位不变,数值位取反)
补码:1.0110 (符号位不变,其他位取反后加上1,即反码加1)