原码表示法
一种比较直观的机器数表示法,原码的最高位作为符号位,用“0”表示正,用“1”表示负,有效数值部分用二进制的绝对值表示纯小数时,X=X0.X1X2X3…Xn-1,其中X0为符号位,共N位字长;则:
若X1=+0.1001,X2= 0.1011,字长为8位,则其原码分别为:
[X1]原=0.1011000
[X2]原=1+0.1011000=1.1011000,
其中最高位是符号位
补码表示法
模:是计量器具的容量,或称模数。在计算机中,机器数表示数据的字长即位数是固定的。其模数的大小:对于n位整数(含一位符号位),则它的模数为2n,对于纯小数(含符号位),则它的模数总是2。若在运算过程中结果大于等于模数,则说明该值已超过了机器所能表示的范围,模数自然丢失。 例:某一台计算机的字长为8位,则它所能表示的二进制数为00000000~11111111,共256个,即模数为28。
补码定义为机器数的最高位作为符号位,用“0”表示正号,用“1”表示负号。
纯小数的情况
X=X0.X1X2X3…Xn-1,其中X0为符号位,共N位字长;则:
例:若X1=+0.1011B,X2=-0.1011B,字长为8位,则补码为
[X1]补=0.1011000B,
[X2]补=2-0.1011000=1.0101000B,
其中最高位为符号位
[0]补=0.000…00B [-0]补=0.000…00
纯整数的情况
设X=X0X1X2X3X4X5X6Xn-1,其中X0为符号位,共n位长,则:
例:若X1=+1011B,X2=-1011B,字长为8位,则补码为:
[X1]补=00001011B,
[X2]补=28-0001011=11110101,
其中最高位为符号位
[0]补=0000…00B [-0]补=0000…00B
原码与补码的比较
原码有两个0编码,补码只有一个0编码 原码的对应关系简单、直观、转换容易,补码要通过求反加工厂取得 原码不适合加减运算,但较适合乘除运算,补码正好相反。
反码表示法
对于正数来说,反码与原码、补码表示相同。
对于负数来说,符号位与原码、补码符号定义相同,只是将原码的数值位按位变反。
例:若X1=+1011B,X2=-1011B,字长为8位,则其反码分别为:
[X1]反=00001011B,
[X2]反=11110100B,其中最高位为符号位
[0]反=0000…00B [-0]反=1111…11B
移码表示法
也叫增码,它常以整数形式用在计算机浮点数的阶码(表示指数)中,若纯整数X为n位(含符号位),则其移码定义为
[X]移=2n-1+[X]补,-2n-1≤X≤2n-1-1
例:若X1=+1000B,X2=-1000B,字长为8位,则其移码分别为:
[X1]补=00001000B,[X2]补=11111000B,其中最高位为符号位
[X1]移=10001000B,[X2]移=01111000B,其中最高位为符号位
由此可得:移码只是补码的符号位取反。