
《计算机组成原理》数据的表示引用原码为在二进制系统中表示负数借助补码可以将减法运算转换为加法运算。原码便于人类阅读反码是求补码的中间形式移码用于浮点数阶码的大小比较。1.原码1.1定义符号位 数值的绝对值正数符号位取0数值位就是该数二进制绝对值。负数符号位取1数值位就是该数二进制绝对值。1.2特点零有两种表示正零和负零不能直接做减法运算正数加负数结果不对例如010151011-310000错误。2.反码2.1定义正数反码 正数原码。负数反码原码的符号位保持1不变数值位全部按位取反0变11变0 原码11100→反码10011。2.2特点零仍存在两种表示但能解决部分计算问题。例如原码010151011-3反码010151100-310001如果存在溢出则加10001100102;反码不能直接计算转为原码计算。3.补码重点理解3.1定义正数补码 正数原码 正数反码。负数补码对原码负数的反码加1符号位不变。3.2特点只有一个0原码000000000补码000000000 原码10000000-0反码11111111补码00000000溢出舍去补码负数表示补码负数可直接用加权求和读出无需转为原码 以8位补码仅有的-12810000000该数无反码和原码举例不一样的数值范围由上述例子可以看出补码负数的符号位1不只表示符号负又具有权重大小而原码和补码的负数符号位只表示正负。补码可直接运算二进制相加10001100000111111010101110101010 反11010101原-85位权法1000110000011111 2^-72^32^22^42^32^22^12^0-11631-85计算机存储整数4.移码4.1定义移码 补码符号位取反数值位保持不变。示例8位X55补000001015移100001014.2特点移码只用于阶码不用于普通整数运算