「计算机组成原理」:一文快速了解计算机原理知识点-附思维导图( 二 )

2、带符号的二进制数据在计算机中的表示方法及运算
(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计算机中 , 移码常用于表示阶码 , 故只执行加、减运算计算机中 , 移码运算公式需要对结果进行修正
  • 运算:移码定义:[X]移=2的n次方+X补码定义:[X]补=2的n+1次方+Y
  • 阶码求和公式[X]移+[Y]补=[X+Y]移 mod2的n+1次方[X]移+[-Y]补=[X-Y]移
(5)补、反、原、移码的相互转换
  • 反码——->原码方法:符号位不变 , 正数不变 , 负数数值部分取反 。
  • 补码——->原码方法1:正数不变 , 负数数值部分求反加1 。 方法2:串行转换从最后开始数 , 遇到第一个“1” , 除第一个“1”不变 , 前面数字分别取反
  • 移码——->原码方法:移码转换为补码 , 再转换为原码
(6)定点数和浮点数