机器数及特点
机器数及特点
<1> 为什么要研究机器内的数据表示
- 目的:组织数据,方便计算机硬件直接使用
- 要考虑的因素
- 支持的数据类型
- 能表示的数据范围
- 能表示的数据精度
- 存储和处理的代价
- 是否有利于软件的移植
- …
<2> 机器内的数据表示
- 真值:符号用 “+”、 “-” 表示的数据表示方法
- 机器数:符号数值化的数据表示方法,用0、1表示符号
- 三种常见的机器数:设定点数的形式为X0X1X2X3 … Xn
例 求下列各数的原码、补码和反码
- X = +1011
[X]原 = [X]反 = [X]补 = 01011 - X = -1011
[X]原 = 11011 [X]反 = 10100 [X]补 = 10101 - 0的表示
[+0]原 = 00000 [-0]原 = 10000
[+0]反 = 000000 [-0]反 = 11111
[+0]补 = 00000 = [-0]补
<3> 常见机器数的特点
1. 原码
- 表示简单:[X]原 = 2n - X
- 运算复杂:符号位不参加运算,要设置加法、减法器
[X]原 + [Y]原
(不能直接判定是执行加法还是减法运算,分同号和异号)
- 0的表示不唯一
2. 反码
- 表示相对原码复杂;[X]反 = 2n+1 + X - 1
- 运算相对原码简单,符号位参加运算,只需要设置加法器,但符号位的进位需要加到最低位
- 0的表示不唯一
反码运算举例
3. 补码
- 表示相对原码复杂:[X]补 = 2n+1 + X
- 运算简单:只需设置加法器
- 0表示唯一
补码中模的概念:符号位进位后后所在位的权值
4. 移码(增码)
- 移码表示浮点数的阶码,IEEE754中阶码用移码表示
- 设定点整数X的移码形式为 X0X1X2X3 … Xn,则移码的定义是:
[X]移 = 2n + X -2n < X < 2n (X为真值,n为X的整数位位数) - 具体实现:数值位与X的补码相同,符号位与补码相反
例 X = +10101 [X]补 = 010101 [X]移 = 110101
X = -10101 [X]补 = 101011 [X]移 = 001011
01011 [X]移 = 001011
注: 在机器数上,我们一定不能够说"0" 是表示整数的符号,“1” 是表示复数的符号