移码

转载需首行注明原地址

本章参考 车向泉老师的公开课《计算机系统中的数据表示》

理解移码的思想,从创建者角度考虑如何创建移码。

目录

  1. 移码从何而来
  2. 如何设计移码
  3. 移码的性质
  4. 移码和补码的关系

1. 移码从何而来

知识点:

  • 大家知道浮点数的组成是:符号位+阶码+尾数。
  • 比较整数的方式:从高位到低位,逐位比较。
  • 负数的原码,补码,反码的机器数都比正数大。

要知道

  • 在cpu内,电路越简单越好。
  • 而浮点数的运算经常有比较接码大小这种操作。
  • 阶码只有整数,而通常定点整数的比较方式:数值位就是从左往右逐位比较。然而,无论阶码采用补码、原码都不行,因为无论补码还是原码,负数机器码都比正数大。
  • 为了复用电路,采取比较定点数的方式来比较解码,于是设计了一种编码,真值和机器码是正比关系,由此引出了移码

2. 如何设计移码

要真值和机器时正比,很简单,高中数学告诉我们,平移就好了。
那平移多少呢?
先看三个位能表示的真值:

111 、110、101、100、011、010、001、000

我们在这些数中找到中间值作为0,如100。
可以类推为 2^(n-1),或首位为1其他位为0的机器数 作为数字0.

111 => 3
110 => 2
101 => 1
100 => 0
011 => -1
010 => -2
001 => -3
000 => -4

那么n位定点整数,可知:x移 = x+2^(n-1) (-2^(n-1) <= x < 2^(n-1))
由于 阶码不可能是小数,所以移码也不考虑小数。

3.移码的性质

  • 0是唯一的。
  • 符号位 1表示正,0表示负。
  • x表示范围:(-2^(n-1) <= x < 2^(n-1)
  • 移码和真值呈线性正比关系。

4.移码和补码的关系

移码_第1张图片

2^(n-1)就是符号位,也就是说,移码等于补码符号位取反,同理,补码符号位取反就等于移码

你可能感兴趣的:(移码)