原码(true form):是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。(注:原码不能直接参与数学运算)。
反码(ones' complement):反码是数值存储的一种,多应用于系统环境设置,在计算机内,定点数有3种表示法:原码、反码和补码。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码( complement):在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
1.正整数的补码是其二进制表示,与原码相同
2.求负整数的补码,将其对应正数二进制表示所有位取反(包括符号位,0变1,1变0)后加1
位非运算:(为正数时,位非为补码+1,正数的补码就是原码,负数时,为补码取反。)
例:
~5的位非为-6
0000 0101 ================================ 5 的二进制码(正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。)
1000 0110 ===================================补码+1
~(-5)的位非为4
1111 1011 ================================= 补码(以补码形式存储)
0000 0100 ================================= 反码