带符号的二进制数据在计算机中的表示方法及运算
(1)源码表示:
X为正数时,符号位为0;X为负数时,符号位为1。
其他位置上与真值一样
0存在两种表示形式
特点:值+0,-0的原码分别为00000、10000,形式不唯一;正数的原码码值随着真值增长而增长,负数的原码码值随着真值增长而减少n+1位原码表示定点整数范围-(2n-1)——-(2n-1)n+1位原码表示定点小数范围 -(1-2-n)———(1-2-n)
运算:绝对值相加减,由数值大小决定运算结果符号
(2)反码表示:
正数的反码、补码与原码相同
负数的反码,按位取反,符号位取反
特点:数值零的反码表示不唯一正数反码码值随着真值增大而增大,负数反码码值随着真值增大而增大n+1位反码所表示定点整数范围- (2n-1)——-2n-1,n+1位反码所表示定点小数范围-(1-2-n)——-1-2-n
运算:满足[X+Y]反=[X]反+[Y]反,[X-Y]反=[X]反+[-Y]反
(3)补码表示:
从X求[X]补:X为正数时,[X]补=XX为负数时,①按位求反(符号位不变),②末尾加1
从[X]补求X:[X]补的符号位为0(正数),[X]补=X[X]补的符号位为1(负数),①按位求反(包括符号位),②末尾加1,再在数值前面加上符号-
从[X]补求补:按位求反(包括符号位)末尾加1
特点:数值零的补码表示唯一正数补码码值随着真值增大而增大,负数补码码值随着真值增大而增大n+1位补码所表示定点整数范围- 2n——2n-1,n+1位补码所表示定点小数范围-1—-1-2-n
结论:负数的补数=模+负数互为补数的绝对值相加=模在补数中,减法运算即加法运算
运算: [X+Y]补=[X]补+[Y]补,[X–Y]补=[X+(–Y)]补=[X]补+[–Y]补
(4)移码表示:
\left [ X \right ][X]补的符号位取反,即得$ \left [ X \right ] $$移
为了从码值直接判断对应真值的大小,所以引进移码
特点:最高位是符号位,1表示正,0表示负数据0有唯一的编码移码码值随着真值增大而增大n+1位移码所表示定点整数范围-2^{n} - \left { 2^{n}-1 \right } , n+1位移码所表示定点小数范围-1——1-2-n计算机中,移码常用于表示阶码,故只执行加、减运算计算机中,移码运算公式需要