转载需首行注明原地址
本章参考 车向泉老师的公开课《计算机系统中的数据表示》
理解移码的思想,从创建者角度考虑如何创建移码。
目录
- 移码从何而来
- 如何设计移码
- 移码的性质
- 移码和补码的关系
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.移码和补码的关系
2^(n-1)就是符号位,也就是说,移码等于补码符号位取反,同理,补码符号位取反就等于移码。
网友评论