第2章 运算方法和运算器(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于规格化浮点数,E 的范围变为1到254,真正的指数 值e 则为-126(1-127)到+127(254-127)。因此32位浮点 数表示的绝对值的范围是10-38~1038(以10的幂表示)。
1-127 00000001-1111111
254-127 11111110-1111111
比较定点小数
浮点表示法 把一个数的有效数字和数的范围在计算机的一个存储单元
中分别予以表示,这种把数的范围和精度分别表示的方法,数 的小数点位置随比例因子的不同而在一定范围内自由浮动。
任意一个十进制数 N 可以写成
N = 10E·M
(2.3)
同样,在计算机中一个任意进制数 N 可以写成
比例因子的指数,称为 浮点数的指数,是一个
(2) (-4120)10=(-1000000011000)2=-1.000000011× 212 S=1 M=000000011… … 00 E=12+127=139=(10001011)2 -4120的IEEE754单精度浮点机器数表示形式为 1 100,0101,1 000,0000,1100,0000,0000,0000 写成十六进制数形式为C580C000H
浮点数的符号位(1 位), 0表示正数,1表示负数
尾数(23位),用小 数表示,小数点放 在尾数域的最前面
阶码(8 位),阶符采用隐含方 式,即采用移码方式来表示正 负指数(移码都是正数不需要
阶符)
32位的浮点数中,S:浮点数的符号位,1 位,0表示正
数,1表示负数。
M:尾数,23位,用小数表示,小数点放在尾数域的最
-11… … … 1≤ x≤ 11… … … 1
31个1
31个1
(111 … … … 1)
(01 … … … 11)
-(231-1) ≤ x≤ 231-1
-2147483648 ≤ x≤ 2147483648
+000,1111
-111 0011
表示为0000,1111 ;
-表示为1111, 0011
整数
尾数,是一个 纯小数
N=Re ×M
比例因子的基数,对于二进 计数值的机器是一个常数,
一般规定R 为2,8或16。
M :尾数,是一个纯小数。
(2.4)
e :比例因子的指数,称为浮点数的指数,是一个整数。
R :比例因子的基数,对于二进计数值的机器是一个常数,
基数R是设计者约定的,用隐含方法表示。一般规定R 为2,8
(2)将十六进制的IEEE754单精度浮点数 42E48000转换成十进制数。
例 将5/32及-4120表示成IEEE754单精度浮点数格式,并用十 六进制书写。
解: (1)(5/32)10=(0.00101)2=1.01× 2-3,按照IEEE754标准单 精度浮点数的规定,因为5/32>0,所以符号为S=0。
或16。
一个机器浮点数由阶码和尾数及其符号位组成
尾数:用定点小数表示,给出有效数字的位数决定了 浮点数的表示精度;
阶码:用整数形式表示,指明小数点在数据中的位置 ,决定了浮点数的表示范围。
比例因子 ,不表示,默认值,一般为2。 各个部分分别占据多少位?
3. IEEE754标准浮点数的表示方法
为便于软件移植,按照 IEEE(电气和电子工程师协会)754 标准,32位浮点数和64位浮点数的标准格式为
浮点数的十进制数值。 [解:]
将十六进制数展开后,可得二进制数格式为
指数e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=
1.011011
于是有
x=(-1)s×1.M×2e
=+(1.011011)×23=+1011.011
=0.0111×22
=0.00111×23
为提高数据的表示精度,当尾数的值不为 0 时,尾数域 的最高有效位应为1,否则以修改阶码同时左右移小数点的办 法,使其变成这一表示形式,这称为浮点数的规格化表示。
因为尾数的最高位总为1,所以这一位不需要存储而默 认是存在。
当浮点数的尾数为 0,不论其阶码为何值,或者当阶码的 值遇到比它能表示的最小值还小时,不管其尾数为何值,计算 机都把该浮点数看成零值,称为机器零。
x0 x1 x2 x3 … … … x30 x31
32位二进制数定点小数可以表示的范围
-0.11… … … 1 ≤ x ≤ 0.11… … … 1
31个1
31个1
(111 … … … 1)
(01 … … … 11)
-(1-2-31) ≤ x ≤ (1-2-31)
-0.9999999995343387 ≤ x≤ 0.9999999995343387
S=0, E=4+127=131=10000011,M=010010011 最后得到32位浮点数的二进制存储格式为:
0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)16
S
E
M
练习:
(1)将5/32及-4120表示成IEEE754单精 度浮点数格式,并用十六进制书写。
则:定点整数表示时,
最大正数值= 01……1=231-1
,
最小负数值= 11 …… 1= - (231-1)
。
定点小数表示时, 最大正数值= 最小负数值=
01……1=1 -2 - 31
,
11 …… 1= - (1 -2 - 31) 。
2.浮点数的表示方法
科学计数法 电子的质量(9×10-28克)和太阳的质量(2×1033克)相差甚
2.1.1 数据格式
int m,n;
folat x;
double y;
计算机中常用的数据表示格式有两种:一是定点格式, 二是浮点格式。
定点格式容许的数值范围有限,但要求的处理硬件比较 简单。
而浮点格式容许的数值范围很大,但要求的处理硬件比 较复杂。
数据范围是指一种类型的数据能表示的最大值和最小值。 数据精度通常指实数所能表示的有效数字的位数。 讨论数值数据时,数据精度和数据范围是经常用到的概 念。
0.000 0001 表示为0000,0001 ; 0.111 1111 表示为0111, 1111
-0.000 0001 表示为1000,0001 ; -0.001 1111 表示为1001, 1111
2.定点纯整数的表示
符号位
数值位
x0 x1 x2
………
xn-1 xn
小数点位置,
纯整数的表示范围为
远。 在定点计算机中无法直接来表示这个数值范围.要使它们送
入定点计算机进行某种运算,必须对它们分别取不同的比例因 子,使其数值部分绝对值小于1,即:
9 × 10-28=0.9 × 10-27 2 × 1033=0.2 × 1034 这里的比例因子10-27 和 1034要分别存放在机器的某个存 储单元中,以便以后对计算结果按这个比例增大。显然这要占 用一定的存储空间和运算时间。因此得到浮点表示法如下:
为
x=(-1)s×(1.M)×2E-127
e=E-127 (2.5)
一个规格化的64位浮点数x的真值为
x=(-1)s×(1.M)×2E-1023
e=E-1023 (2.6)
同一个浮点数的表示方法不是唯一的,如:
(1.75)10=1.11×20 =0.111×21
(IEEE规格化表示) (非规格化表示)
第二章 运算方法和运算器
2.1数据与文字的表示方法 2.2定点加、减法运算 2.3定点乘法运算 2.4定点除法运算 2.5定点运算器的组成 2.6浮点运算的方法和浮点运算器
2.1 数据与文字的表示方法 计算机内部信息
控制信息
指令 控制字
数据信息
数值型数据
非数值型数据
定点数
浮点数
数字串 字符与字符串 汉字与汉字串 图像 音频与视频
=(11.375)10
[例2] 将(20.59375)10转换成754标准的32位浮点数的二进制 存储格式。 [解:]
首先分别将整数和分数部分转换成二进制数:
20.59375=10100.10011
然后移动小数点,使其在第1,2位之间
10100.10011=1.010010011×24
e=4
于是得到:
符号位
x0 x1 x2
………
数值位
xn-1 xn
小数点位置,
纯小数的表示范围为
默认,省略
(x0x1x2…xn数值位各位均为0时绝对值最小;数值位各
位均为1时绝对值最大)
-(1-2-n) ≤x≤ 1-2-n
0 ≤ |x|≤ 1-2-n (2.1)
即
-0.11…… 1 ≤x ≤ +0.11 …… 1
n个 1
因为尾数值为1.M,现在1.M=1.01,所以去掉隐含的1, 得到尾数部分机器数M=01000… 00
因为阶码值为指数值加上127,所以阶码值为 E=(-3)+127=124=(01111100)2 所以,单精度浮点数机器数表示
0 011,1110,0 010,0000,0000,0000,0000,0000 十六进制为3E200000H
前面。
E:阶码(8 位),阶符采用隐含方式,即采用移码方式来
表示正负指数。 移码方法对两个指数大小的比较和对阶操作都比较方
便,因为阶码域值大者其指数值也大。
采用这种方式时,将浮点数的指数真值e 变成阶码E
时,应将指数 e 加上一个固定的偏移值127(01111111),即
E=e+127.
IEEE754 标准中,一个规格化的32位浮点数x的真值可表示
1. 定点数的表示方法
定点表示:约定机器中所有数据的小数点位置是固定不变的。 由于约定在固定的位置,小数点就不再使用记号“.”来表示。
通常将放到数值位最后面或者最前面,这样数据表示成 纯小数或纯整数。
定点数x=x0x1x2…xn 在定点机中表示如下(
x0:符号位,0代表正号,1代表负号Hale Waihona Puke Baidu:
1.定点纯小数的表示
x0 x1 x2 x3 x4 x5 x6 x7
小数点位置, 默认,省略
-1111111 ≤ x≤ 1111111 (1111,1111) (0111,1111)
-(27-1) ≤ x≤ 27-1
-127 ≤ x≤ 127
x0 x1 x2 x3 … … … x30 x31
32位二进制数定点整数可以表示的范围
-000,1111
最大数:+127
表示为1000,1111
表示为0111,1111
+111 0011
最小数:-127
表示为0111, 0011;
表示为1111,1111
目前计算机中多采用定点纯整数表示,因此将定 点数表示的运算简称为整数运算。
例. 机器字长为32位,定点表示时,数符1位,尾数31位。
-4294967296 ≤ x≤ 4294967296
-210 ≤ x≤ 210
浮点数所表示的范围远比定点数大。 一台计算机中究竟采用定点表示还是浮点表示,要根据 计算机的使用条件来确定。 一般在高档微机以上的计算机中同时采用定点、浮点 表示,由使用者进行选择,而单片机中多采用定点表示。
[例1] 若浮点数x的754标准存储格式为(41360000)16,求其
例 将十六进制的IEEE754单精度浮点数42E48000转换成十进 制数。
解
(42E48000)16=(0100 0010 1110 0100 1000 0000 0000 0000)2 按照IEEE754标准可以写成
0 10000101 11001001000000000000000 可以得出S=0,
n个1
例如: 符号位 用八位二进制
数值位
x0 x1 x2 x3 x4 x5 x6 x7
小数点位置, 默认,省略
-0.1111111≤ x≤ 0.1111111 (1111,1111) (0111,1111) -(1-2-7) ≤ x≤ (1-2-7)
-0.9921875 ≤ x≤ 0.9921875
S
E
00… … … 0
当阶码E 为全0且尾数M 也为全0时,表示的真值x 为 零,结合符号位S 为0或1,有正零和负零之分。
S
00… … 0
00… … … 0
当阶码E 为全1且尾数M 为全0时,表示的真值x 为无 穷大,结合符号位S 为0或1,也有+∞和-∞之分。
S
11… … 1
00… … … 0
这样在32位浮点数表示中,要除去E 用全0和全1(255)10表 示零和无穷大的特殊情况,指数的偏移值127(01111111)。
默认,省略
(x0x1x2…xn数值位各位均为0时绝对值最小;数值位各
位均为1时绝对值最大)
-(2n-1) ≤ x ≤ 2n-1
0 ≤ |x|≤ 2n-1
(2.2)
即
-11…… 1 ≤x ≤ +11 …… 1
n个 1
n个1
(111 …… 1 ) (01 …… 1 )
例如: 符号位 用八位二进制
数值位