源码,反码,补码
今天学习IEEE754发现对源码,反码,补码的定义和运算模糊不清,小做记录。
源码
源码就是符号位加上真值的绝对值,即第一位为符号位,其余位为真值,若是8位二进制:
[+1] = 0000 0001
[-1] = 1000 0001
取值范围:[-127,127] = [1111 1111, 0111 1111]
反码
正数的反码是其本身
负数的反码是在其源码的基础上,符号位不变,其余位按个取反。
[+1] = [0000 0001]源 = [0000 0001]反
[-5] = [1000 0101]源 = [1111 1010]反
计算方法:符号位正常参与运算,若符号位有进位,则加在最低位
[+5] + [-5] = [0000 0101]源 + [1000 0101]源 = [0000 0101]反 + [1111 1010]反 = [1111 1111]反=[1000 0000]源
采用反码计算减法,得出0的结果有两种,[0000 0000]和[1000 0000]
补码
整数的补码是其本身
复数的补码是在其反码的基础上,再加一。