写点什么

机器数及特点

用户头像
若尘
关注
发布于: 刚刚
机器数及特点

机器数及特点

<1> 为什么要研究机器内的数据表示

  • 目的:组织数据,方便计算机硬件直接使用

  • 要考虑的因素

  • 支持的数据类型

  • 能表示的数据范围

  • 能表示的数据精度

  • 存储和处理的代价

  • 是否有利于软件的移植

  • ....

<2> 机器内的数据表示

  • 真值:符号用 "+"、 "-" 表示的数据表示方法

  • 机器数:符号数值化的数据表示方法,用 0、1 表示符号

  • 三种常见的机器数:设定点数的形式为 X<sub>0</sub>X<sub>1</sub>X<sub>2</sub>X<sub>3</sub> ... X<sub>n</sub>



例 求下列各数的原码、补码和反码


  1. X = +1011[X]<sub>原</sub> = [X]<sub>反</sub> = [X]<sub>补</sub> = 01011

  2. X = -1011[X]<sub>原</sub> = 11011    [X]<sub>反</sub> = 10100    [X]<sub>补</sub> = 10101

  3. 0 的表示[+0]<sub>原</sub> = 00000    [-0]<sub>原</sub> = 10000

  4. [+0]<sub>反</sub> = 000000    [-0]<sub>反</sub> = 11111[+0]<sub>补</sub> = 00000 = [-0]<sub>补</sub>

<3> 常见机器数的特点

1. 原码

  • 表示简单:[X]<sub>原</sub> = 2<sup>n</sup> - X

  • 运算复杂:符号位不参加运算,要设置加法、减法器


[X]<sub>原</sub> + [Y]<sub>原</sub>(不能直接判定是执行加法还是减法运算,分同号和异号)


  • 0 的表示不唯一

2. 反码

  • 表示相对原码复杂;[X]<sub>反</sub> = 2<sup>n+1</sup> + X - 1

  • 运算相对原码简单,符号位参加运算,只需要设置加法器,但符号位的进位需要加到最低位

  • 0 的表示不唯一


反码运算举例

3. 补码

  • 表示相对原码复杂:[X]<sub>补</sub> = 2<sup>n+1</sup> + X

  • 运算简单:只需设置加法器

  • 0 表示唯一


补码中模的概念:符号位进位后后所在位的权值

4. 移码(增码)

  • 移码表示浮点数的阶码,IEEE754 中阶码用移码表示

  • 设定点整数 X 的移码形式为 X<sub>0</sub>X<sub>1</sub>X<sub>2</sub>X<sub>3</sub> ... X<sub>n</sub>,则移码的定义是:[X]<sub>移</sub> = 2<sup>n</sup> + X     -2<sup>n</sup> < X < 2<sup>n</sup>    (X 为真值,n 为 X 的整数位位数)

  • 具体实现:数值位与 X 的补码相同,符号位与补码相反


例 X = +10101     [X]<sub>补</sub> = 010101    [X]<sub>移</sub> = 110101     X = -10101     [X]<sub>补</sub> = 101011    [X]<sub>移</sub> = 001011


01011    [X]<sub>移</sub> = 001011


注: 在机器数上,我们一定不能够说"0" 是表示整数的符号,"1" 是表示复数的符号

发布于: 刚刚阅读数: 2
用户头像

若尘

关注

还未添加个人签名 2021.01.11 加入

还未添加个人简介

评论

发布
暂无评论
机器数及特点