计算机组成原理数据的机器表示

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