第二章数据与文字的表示方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一情况情况下, 对于正数x = + 0.x1x2 … xn,有
[x]原=0.x1x2 … xn 对于负数x = - 0.x1x2…xn,有
[x]原=1.x1x2 … xn 对于0 , 原码机器中往往有“ + 0”、“ - 0”之分 有两种形式:
[ + 0] 原= 0.000 … 0 [ - 0] 原= 1.000 … 0
9×10-28= 0.9×10-27 2×1033= 0.2×1034 这里的比例因子10-27 和1034要分别存放在机器. 某个存单元中,便于以后对计算结果按这个比例 增大。要占用一定的存储空间和运算时间。
5
计算机中还可以这样来表示数据:
把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表 示。
S 阶码(8位)
M尾数(23位)
指数e=阶码—127=10000010—01111111=00000011=(3)10 包括隐藏位1的尾数
1.M=1.011 0110 0000 0000 0000 0000 =1.011011
于是有
x =(—1)S×1.M×2 e
= +(1.011011)×2 3= +1011.011=(11.375)10
例如:
1
2
0001
3 0010
C 0011
(+123) 1100
01
2
0000 0001
D
0010
(-12)
1101
23
每一个小框内给出一个数值位或符号位编码 值(用十六进制形式给出).
符号位在数字位之后。 要指明一个压缩的十进制数串, 要给出它在主存中的首地址和数字位个数. (不含符号位),又称位长,位长为0的数其值为0。 十进制数串表示法的优点: 位长可变,许多机器中规定该长度从 0到31, 有的甚至更长。
定点格式: 数值范围有限,处理硬件比较简单。 浮点格式: 数值范围很大,处理硬件比较复杂。
1.定点数的表示方法
定点格式:
约定机器中所有数据的小数点位置固定不变的。 小数点就不再使用记号“·”来表示。 小数点位置固定在哪一位都可以, 通常将数据表示成纯小数或纯整数。
2
例如:
用一个n+1位字来表示一个定点数X, 其中一位x0用来表示数的符号, 其余位数代表它的量值。 符号位 x0 放在最左位置, 数值0和1分别代表正号和负号。 对于任意定点数 x = x0x1x2…xn-1xn , 在定点机中可表示为如下形式:
•阶码真值和移码关系的说明(对于8位阶码) 由补码和真值的关系知: [ E]移码=[E]补码+27= [E]补码+128
(-1)s (0.1M) 2 e
真值
754表示
. (-1)s (1 M) 2 e+128 2 -1 . = (-1)s (1 M) 2 e+127
64位浮点数中符号位1位,阶码域11位,尾数域52位, 指数偏移值是1023
如数C表示的是纯整数,小数点位于最低位CN 的右边 此时数X的表示范围:
0≤|x|≤ 2-n- 1 =111…111 纯整数 (2.2)
目前计算机中多采用定点纯整数表示, 将定点表示的运算简称为整数运算。
4
2.浮点数的表示方法
电 子 的 质 量 ( 9×10-28 克 ) 和 太 阳 的 质 量 (2×1033克)相差甚远,在定点计算机中无法 直接来表示这个数值范围。要使它们送入定点 计算机进行某种运算,必须对它们分别取不同 的比例因子,使其数值部分绝对值小于是1.
31
定点整数的原码形式为 xox1x2 … xn, 原码表示的定义:
x 2n>x≥0
[x]

=
(2.8)
0≥x> - 2n
2n – x = 2n + |x|
采用原码表示法简单易懂.
最大缺点: 运算复杂。
因为当两数相加时,
32
在进行减法时,要比较绝对 值的大小, 然后大数减去小数, 最后要给结果选择恰当的符号。 为了解决这些矛盾,
这种把数的范围和精度分别表示的方法,相当于数的小数点位置随比例 因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。
任意一个十进制数N 写成: N=10E.M
(2.3)
6
在计算机中一个任意进制数N可以写成 :
N=Re.m =R士e*士m
(2.4)
m 称为浮点数的尾数, 是一个纯小数。 e是比例因子的指数, 称为浮点的指数.是一个整数。
11
一个规格化的32位浮点数X的真值可表示为:
x=(-1)S×(1.M)×2E-127 e=E-127 (2.5)
尾数域表示的值是1. M 规格化的浮点数的尾数域 最左位(最高有效位)总是1,故这位经常不存储, 认为隐藏在小数点的左边. 例:8位二进制补码与移码之间的关系为:
[X]移=128+ [X]补
人们找到了补码表示法。
33
以钟表对时为例说明补码的概念。
24
4.自定义数据表示
在传统的计算机体系结构中, 用指令本身来说明操作数据的类型。
定点法表示操作数是纯小数或纯整数; 浮点加法表示操作数是浮点数; 十进制加法表示操作数是BCD 数。 由于操作数据类型不同,要设三种不同的指 令(操作码)来加以区分。 自定义数据表示:
用数据本身来说明数据类型。 表示形式:有两种
。 标志符数据表示和描述符数据表示
25
标志符数据表示:
要求对每一个数据都有附加标志符,格式如下:
标志符
数据
标志符指明后面的数据所具有的类型,如整数,
浮点数、BCD数、字符串等。
标志符数据表示的优点:
能简化指令系统,便于程序调试和查错.
标志符数据表示的缺点:
数据区域占用的存储空间增加,
指令执行的速度减慢。
规格化的64位浮点数X的真值为:
x=(-1)S×(1.M)×2E-1023
e=E-1023 (2.6)
14
若不对浮点数的表示作出明确规定, 同一个浮点数的表示就不是惟一的。 例如: 0.5可以表示成0.05×101,50×10-2等。 当尾数的值不为0时,其绝对值应≥0.5 尾数域的最高有效位应为1
(1)标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要 和数据分开存放。
(2)描述符表示中,先访问描述符,后访问数据,至少增加一次访存。 (3)描述符是程序的一部分,而不是数据的一部分。
28
1.问题? 2.1.2数的机器码表示
计算机中对数据进行运算操作时, 符号位如何表示呢? 是否也同数值位一道参加运算操作呢? 如参加,会给运算操作带来什么影响呢? 2.解决: 把符号位和数值一起编码来表示相应的数。 如原码、补码、反码、移码等。
21
用压缩的十进制数串表示一个数,要占用主 存连续的多个字节。
其值可用二---十编码(BCD码)或数字符的 ASCII码的低Hale Waihona Puke Baidu4位表示。
符号位占半个字节并放在最低数字位之后, 用12(C)表示正号,用13(D)表示负号
规定数位加符号位之和必须为偶数 当和不为偶数时, 应在最高数字位之前补一个0。
22
0.00000000到0.11111111 相当于十进制数的0到127/128
浮点数所能表示的数的范围:
2-11×0.0001到211×0.1111 相当于十进制数的 1/128 到 7.5
显然,都用8位,
浮点机能表示的数的范围比定点机大得多。
17
一台计算机中采用定点表示还是浮点 表示,要根据计算机的使用条件来确定。
x0 . x 1 x2 … xn-1 xn .
符号
量值(尾数)
3
如果数X表示的是纯小数,小数点位于x0和x1之间。 当x 1 x2 … xn各位均为0时,数X的绝对值最小,
|X|min=0; 当各位均为1时,X的绝对值最大,
|X|max=1-2-n=0.111...111 故数的表示范围:
0≤|x| ≤1 -2-n =0.111…111 纯小数 (2.1)
比例因子的基数R对二进计数制的机器是一个常数,
一般规定 R为2,8和16。
在机器中表示一个浮点数时:
一是要给出尾数,用定点小数形式表示。
尾数部分给出有效数字,决定了浮点数的表示精度。
二是要给出指数,用整数形式表示,常称为阶码.
阶码指明小数点在数据中的位置, 决定了浮点数的表示范围。浮点数也要有符号位。
得到32位浮点数的二进制存储格式为:
0100 0001 1010 0100 1100 0000 0000 0000 =(41A4 C000)16
20
3.十进制数串的表示方法
大多数通用性较强的计算机都能直接处理十进制形式表示的数据。 十进制数串在计算机内有两种表示形式: (1) 字符串形式: 一个字节存放一个十进制的数位或符号位. (2)压缩的十进制数串形式: 一个字节存放两个十进制的数位。 每个数位占半个字节(4个二进制位)
10
32位的浮点数中:
S是浮点数的符号位,占1位,安排在最高位,S=0表示正数,S=1表示负数。 M是尾数,放在低位部分,占用23位,用小数表示,小数点放在尾数域的最前 面。 E 是阶码,占用8位,阶符采用隐含方式,采用移码方法来表示正负指数。移码 方法对两个指数大小的比较和对阶操作都比较方便,阶码域值大者其指数值也 大。采用这种方式时,将浮点数的指数真值e变成阶码E 时,应将指数 e加上 一个固定的偏移值127(01111111),E=e+127。
为了区别一般书写表示的数和机器中这些编码表示的数,
通常将前者称为真值,后者称为机器数或机器码。
29
1. 原码表示法
定点小数的原码形式为 xo.x1x2 … xn, 原码表示的定义:
x 1>x≥0
[x]

=
(2.7)
0≥x> - 1
1 – x = 1 + |x|
式中[x]原 机器数,x 是真值。
30
0.1M ×2E => (1.M)×2-1 ×2E+128 =(1.M) ×2E+128-1 =(1.M) ×2E+127
12
• 对754-32标准尾数的说明
对于尾数,当取绝对值且已经规格化后,其形式一定为0.1M2M3M4…Mn, 显然仅存储M2M3M4…Mn可以节约存储位。
0.1M2M3M4…Mn=1.M2M3M4…Mn ×2 –1
一般在高档微机以上的计算机中同时采 用定点、浮点表示,由使用者进行选择。
单片机中多采用定点表示。
18
【例1】 若浮点数X 的二进制存储格式为(41360000)16 求其32位浮点数的十进制值。
解:将16进制数展开后,得二制数格式为: 0100 0001 0011 0110 0000 0000 0000 0000
2.1数据与文字的表示方法
2.1.1 数据格式
选择计算机数的表示方式时, 需考虑以下几个因素: (1) 要表示的数的类型(小数,整数,实数和复数). (2) 可能遇到的数值范围; (3) 数值精确度; (4) 数据存储和处理所需要的硬件代价。
1
计算机中常用的数据表示格式:两种
定点格式, 浮点格式。
26
描述符数据表示 :
主要用来描述多维结构的数据类型.
如向量、矩阵、记录等。格式为:
描述符标志位 特征标记 数据块长度 数据块起始地址
描述符标志位部分: 指明这是一个数据描述符; 特征标记部分: 指明数据的各种特征; 长度部分: 指明数组中元素个数;
起始地址部分: 指明数据块的首地址。
27
标志符与描述符表示的区别:3点
7
一个机器浮点数应当由 阶码和尾数及其符号位组成:
ES
E1E2…Em
MS
阶符 阶码
数符
M1M2…Mn 尾数
8
为便于软件移植,按照IEEE754的标准,32位浮点数的标准格式为:
31 30
23 22
0
S
E
M
32位浮点数
9
64位标准格式浮点数:
63 62
52 51
0
S
E
M
• 32位浮点数和64位浮点数,规定基数R=2 基数2是固定常数,不必用显示方式来表示它
19
【例2】
将十进制数20.59375转换成32位浮点数的二进制格式
来存储。
解:首先分别将整数和分数部分转换成二进制数:
20.59375 = 10100.10011
然后移动小数点,使其在第1,2位之间
10100.10011=1.010010011×24
e=4
于是: S=0, E =4+127=131, M=010010011
要修改阶码同时左右移小数点的办法 使其变成这一要求的表示形式,这称为浮 点数的规格化表示。
15
当一个浮点数的尾数为0, 不论其阶码为何值, 或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值, 计算机都把该浮点数看成零值, 称为机器零。
16
假设:
机器中的数由8位二进制数表示(包括符号位) 定点机中这8位全部用来表示有效数字(包括符号) 在浮点机中若阶符阶码占3位,数符尾数占5位。 只考虑正数值,定点机小数表示的数的范围:
相关文档
最新文档