第二章数据的机器表示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对规格化的浮点数规定如下:
如果尾数是原码表示,尾数的最高有效位一定为1。 如,0.1101×2-2 为规格化的浮点数表示, 0.01101×2-1则不是。
如果尾数用补码表示,尾数的最高有效位一定与符号位相反。 如:0.1x…x和1.0xx…x是规格化的补码表示。
-1/2是个特殊的浮点数,无规格化表示,所以不在浮点数规格 化表示的范围内。
若定点小数的补码形式为x0.x1x2…xn,则补码的定义:
[X]补 =
X 2+X
0 ≤X<1 - 1≤ X< 0
其中,[X]补是机器数,X是真值。
(mod 2)
8位 机器字
例如, x=+0.1011,则[x]补=0.1011 x= -0.1011,则[x]补=1.0101
对于正数x=+0.x1x2…xn,[x]补= 0.x1x2…xn 对于负数x= -0.x1x2…xn,[x]补= 10.0…0-0.x1x2…xn
21
4、浮点数的表示方法
把一个数的有效数字和数的范围在计算机的一个存 储单元中分别予以表示,相当于小数点的位置随数 的比例因子不同在一定范围内自由浮动,所以把这 种表示方式称为浮点表示法。
任意一个二进制数可以写成:
2定值,不存储
N=2e×M
M称为浮点数的尾数,纯小数表示,基数为2; e为浮点数的指数,也叫阶码,整数表示,底数为2。
对于0,有两种形式: [+0]原 = 0.00…0, [ -0]原 = 1.00…0
5
原码表示(续)
若定点整数的原码形式为xn-1…x2x1x0 ,定点整数的原码定义:
[x]原=
X 2n-1 + |X|
0 ≤X<2n-1 -2n-1<X≤0
例如,x=+1011,则[x]原=00001011 x= -1011,则[x]原=10001011
正数补码与原码相同,不需要转换。 负数补码转换为原码时,对补码再求补码,实现逆转换,即对
补码再求补码结果为原码;再由原码转换为真值。
关于补码表示的结论:
补码的最高位为符号位,0为正数、1为负数,符号位是数值的 一部分,可以和数值位一起参与运算,不需要单独处理。
数值0只有一种表示,无+0和-0之分,补码的负数域不含0。 负数补码和原码相比,多出了一个负数-1或-2n-1。以n位整数
对于数据表示,我们最关心两项指标:
第一,表示范围,即在正负两个方向上各能表示多大的数 第二,分辨率,也就是表示数的精细程度
13
1、定点表示法——无符号定点数
所谓无符号数定点数,是指整个机器字的二进制位全部 用来表示数值位,没有符号位置;同时约定小数点在最 低数位之后,而且不出现在数码序列中。
真值 -(2n-1-1)
-1 +1 2n-1-1 -2n-1 -1 +1 2n-1-1
17
现以8位原码为例,说明带符号定点整数的绝对 值最大负数-(27-1)、最大正数(27-1)。
得到结论:(注意,序列下标和权值的指数一致) 原码定点整数表示范围:-(2n-1-1)~(2n-1-1) 补码定点整数表示范围:-2n ~(2n-1-1) 原码、补码定点整数分辨率:1
对于0,有两种形式:[+0]反 = 0.00…0, [-0]反 = 1.11…1
若定点整数的补码形式为xn-1…x2x1x0,定点整数的补码定义:
[x]反=
X (2n-1 – 1) + X
0 ≤X<2n-1 - 2n-1< X ≤ 0
[x]反=2-2-n+x,[x]补=2+x
[x]补=[x]反+2-n
浮点数在机器中由阶码和尾数来表示。尾数部分给 出浮点数有效数字,决定浮点数的精度;阶码指明 小数点在数据中的位置,决定浮点数的范围。
22
(1)浮点数的格式
浮点数的表示格式
Es E1E2…Em
阶符 阶码
Ms
数符
M1M2…Mn
尾数
整数
小数
数符决定浮点数的正负,阶符只决定阶码本身的正负。
23
浮点数举例(原码为例)
0的补码只有一种形式:[+0]补=[-0]补 =0
8
由真值、原码转换为补码
正数的补码表示与原码相同。 负数原码转换为补码的方法之二:
如:[x]原=0.1010 ,[x]补=0.1010
负数原码转换为补码的方法之一: 符号位保持1不变,数值位按位求 反,末位加1。
符号位保持1不变,在数值位中从 低位向高位找1,第一个1及其右边 的0保持不变,数值位的其余部分 求反。
小数 点
以下分原码和补码进行讨论。
16
假设:带符号的定点整数代码序列为xn-1…x2x1x0 ,约定 xn-1为符号位,小数点在最低位之后。其典型值如下:
原码 补码
典型值 绝对值最大负数 绝对值最小负数 最小非零正数 最大正数 绝对值最大负数 绝对值最小负数 最小非零正数 最大正数
代码序列 11…11 10…01 00...01 01…11 10…00 11…11 00…01 01…11
7
补码表示(续)
若定点整数的补码形式为xn-1…x2x1x0,定点整数的补码定义:
[x]补=
X 2n + X
0 ≤X<2n-1 - 2n-1≤ X< 0
(mod 2n)
例如, x = +1011,则[x]补 = 0000 1011 x = -1011,则[x]补 = 1111 0101
8位 机器字
设定点整数移码的形式为xm-1…x2x1 x0,则移码定义为: [x]移=2m-1+x -2m-1≤x<2m-1
[x]移是机器数,x是真值,2m-1是一个固定的偏移量, 它也是xm-1的位权,移码共有m位。
例、某浮点数阶码8位,含一位符号位,移码表示。当阶 码x = -0111 1111,则:
[x]移 = 27 - 0111 1111 = 0000 0001
25
移码的特点
最高位为0表示负数,为1表示正数。 移码全0时真值最小,全1时真值最大。 0的移码只有一个,[±0]移=100…0 同一数值的移码和补码,数位相同,而符号相反。 便于阶码大小的比较,便于对阶操作,便于简化机
器中判零电路的实现。
26
(3)浮点数的规格化表示
为了提高浮点数的表示精度,当尾数不为0时,尾数域 的最高数位必须是一个有效值。如果最高数位不是有效 值,则通过尾数移位并修改阶码的办法,使其变成有效 值,这称为浮点数的规格化。
有以下结论:反码的末位加1等于对应真值的补码。
反码的符号位也可以作为数值位直接参与运算。
12
二、数的定点表示与浮点表示
在现实世界中,我们所遇到的数可能既有整数部分, 又有小数部分,这就存在一个如何表示小数点的问 题,即如何确定小数点的位置。
根据小数点的位置是否固定,数的格式可分为:
定点表示 浮点表示 其中,定点数又分为无符号定点数、带符号定点数。
若定点小数的原码形式为 x0.x1x2…xn,则原码表示的定义:
[X]原= X
0 ≤X<1
1 + |X| -1<X≤0
8位
其中,[X]原是机器数,X是真值。
机器字
例如,x=+0.1001,则[x]原=0.1001 x= -0.1001,则[x]原=1.1001
对于正数x=+0.x1x2…xn,[x]原= 0.x1x2…xn 对于负数x= -0.x1x2…xn,[x]原= 1.x1x2…xn
例、N1 = 01001,表示9;N2 = 11001,表示25。
字长为n位的无符号数xn-1…x2x1x0有以下特性:
典型值
真值
代码序列
最大值
2n-1
最小非零正数
1
最小值
0
11…11 00…01 00…00
无符号定点数值的表示范围为:0~2n-1,分辨率为1。
14
无符号定点数
例、以8位无符号数为例,说明其最大值为(28-1)。
18
3、定点表示法——带符号定点小数
带符号定点小数是纯小数,它约定机器字的最高位为 符号位,小数点在符号位之后、最高数值位之前、且 不出现在数码序列中 ,带符号定点小数可以是原码表 示或补码表示。
格式:
x0
x1 x2 …… xn-2 xn-1 xn
符号位
小数 点
数值 位
以下分原码和补码进行讨论。
真值
-(1-2-n)
-2-n +2-n 1-2-n -1 -2-n +2-n 1-2-n
20
现以8位原码为例,说明带符号定点小数的绝对 值最大负数-(1-2-7)、最大正数(1-2-7)。
由此得到:(注意:序列下标和权值的指数一致) 原码定点小数表示范围:-(1-2-n)~(1-2-n) 补码定点小数范围:-1 ~(1-2-n) 原码、补码定点小数分辨率:2-n
第二章 数据的机器表示
主要内容:
真值、机器数的概念 原码、补码、反码、真值,及其相互转换。
定点数与浮点数的表示范围。 字符编码与汉字编码。
1
一、带符号数的表示方法
带符号机器数主要有3种编码方式:
原码 补码 反码
带符号数最常用的编码方式有2种:
原码 补码
4
1、原码表示
原码表示法规定:一个机器字中,最高位为符号位,符号位 为0表示正数,符号位为1表示负数,数值部分与真值相同。
若纯小数的反码序列为x0.x1x2…xn ,则:
[x]反=
X (2 – 2-n) + X
0 ≤X<1 - 1< X ≤ 0
例如,x = + 0.1101, [x]反 = 0.1101 x = - 0.1101, [x]反 = 1.0010
11
反码表示(续)
对于正数 x=+0.x1x2…xn,[x]反= 0.x1x2…xn 对于负数 x= -0.x1x2…xn,[x]反= 1.x1x2…xn
27
(4)浮点数的表示范围和精度
设浮点数的阶码m+1位,含一位阶符,补码表示,以 2为底;尾数n+1位,含一位数符,补码表示,规格 化。其典型值如下:
典型值
浮点数代码
真值
绝对值最大负数 绝对值最小负数 非零最小正数 最大正数
01…1,1.00…0 10…0,1.01…1 10…0,0.10…0 01…1,0.1…1
如:
[x]原 = 1.1010
按位求反 1.0101
末位加1 +
1
如: [x]原 = 1. 10 10 不变 求反 不变
[x]补 = 1. 01 10
[x]补 = 1. 0110
以上方法与通过补码定义式计算结果完全一致,但更为简便,是实现 求补电路的重要依据,也是实现求补电路普遍采用的方法。
9
由补码表示转换为原码、真值
19
假设:带符号的定点小数代码为x0.x1x2…xn ,约定x0为 符号位,小数点在符号位和最高数位之间.其典型值如下:
原码 补码
典型值
绝对值最大负数
绝对值最小负数 最小非零正数 最大正数 绝对值最大负数 绝对值最小负数 最小非零正数 最大正数
代码序列
1.1…11
1.0…01 0.0...01 0.1…11 1.0…00 1.1…11 0.0…01 0.1…11
Es E1E2…Em
阶符 阶码
Ms
数符
M1M2…Mn
尾数
0 0 1 0 1 1100000
E=+2
M=-0.75
N=2E·M=-0.75×22=-0.75×4=-3.0
阶码通常使用移码表示,移码是计算机中又一种机器 数的编码方式。下面先介绍移码。
24
(2)移码表示法
பைடு நூலகம் 移码通常用来表示浮点数的阶码,由真值加一个固定的 常数生成,这个固定的常数称为偏移量。
为例,原码绝对值最大的负数为-(2n-1-1),而补码绝对值最 大的负数为-2n-1,其原因是在补码中0只占一个码点。 补码表示可以把减法转化为加法,用一套电路完成加减运算。
10
3、反码表示
反码符号位的表示方法与原码相同,数值部分表示如下: 对于正数,数值部分与真值的形式相同;对于负数,将真 值的数值部分按位求反。
其它典型值,最小非零正数和零,可进行同样的分析。
15
2、定点表示法——带符号定点整数
带符号定点整数是纯整数,它约定机器字的最高位为 符号位,小数点在最低数位之后、且不出现在数码序 列中,带符号定点整数可以是原码表示或补码表示。
格式为:
Xn-1 xn-2 xn-3 …… x2 x1 x0
符号位
数值 位
关于原码表示的结论:
真值0有两种不同的表示形式(+0、-0)
8位 机器字
小数原码表示范围为:-1<x<1
整数原码表示范围为:-2n-1 <x<2n-1
原码表示简单易懂,缺点是加法运算复杂。因为人为约定0为正
数、1为负数,在运算时,符号和数值要分开处理。
6
2、补码表示
补码符号位的表示方法与原码相同,数值部分的表示如下: 对于正数,数值部分与真值的形式相同;对于负数,将真值 的数值部分按位求反,末位加1。
相关文档
最新文档