原码:
原码(true form)是一种计算机中对数字的二进制定点表示方法。
原码表示法在数值前面增加了一位符号位(signed)(即最高位为符号位):
正数该位为0,负数该位为1,其余位表示数值的大小。
列如:十进制的5转换为二进制的原码为 0 000 0011
十进制的-5转化为二进制的原码为 1 000 0011
反码:
反码(Inverse code)通常是用来由原码求补码或者由补码求原码的过渡码。
在有符号位中,如果是正数,那么反码和原码相同;如果是负数,则符号位不变,其余各位取反(即0变1,1变0)。
列如:5的反码为 0 000 0011(与其原码相同)
-5的反码为 1 111 1100
补码:
在计算机系统中,数值一律用补码(complement)来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理 。
如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(就是将原码数值位取反然后在最低位加1,也就是补码加1)。
注意:数0的补码表示是唯一的 。
0的补码为 0 000 0000
-0的补码也为 0 000 0000