第3章 2.定点数和浮点数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
微机中的四种整数类型
整数类型 数值范围 精 度 格 式 16位整数 -32768~32767 二进制16位 补码表示 16位整数 二进制16位 短整数 -231~ 231-1 二进制32位 二进制32位 补码表示 长整数 -263~ 263-1 二进制64位 二进制64位 补码表示 BCD整数 BCD整数 -1018+1~1018-1 十进制18位 80个二进 十进制18位 80个二进 制其中最左面1字节的最高位是符号位,余7 制其中最左面1字节的最高位是符号位,余7位无 效;另外72位是18位BCD码,原码表示。 效;另外72位是18位BCD码,原码表示。
13
31 30 符号位 阶
双精度
扩展精度
例如将十进制数178.125表示成微机 中的单精度浮点数
解:178.125=10110010.001B =1.0110010001x27 指数E=7+127=134=10000110B 指数E=7+127=134=10000110B 127是单精度浮点数应加的指数偏移量,其完整的 127是单精度浮点数应加的指数偏移量,其完整的 浮点数形式为 : 0 10000110 011 0010 0010 0000 0000 0000 = 43322000H
15
3.2.4 数字化信息的编码及表示
计算机进行数据处理和运算,就必须首先实 现数字化表达。 另外由于计算机除了数据处理和运算外,还 要进行各种文字(特别是中文) 要进行各种文字(特别是中文)的处理与编辑。因 此,所有由计算机处理的信息也要用数字进行编 码。这样在物理机制上可以以数字信号表示. 码。这样在物理机制上可以以数字信号表示.
t 0
18
2.用一组电平信号表示数字代 码
U 0 U 0 U 0 U 0 1 t 1 t 0 t 1 t
19
3.用一组数字代码表示字符(如ASCII码) 3.用一组数字代码表示字符(如ASCII码) 4.用若干点的组合表示图像 4.用若干点的组合表示图像 (如图形点阵码) 5.用数字信号表示声音 5.用数字信号表示声音 (如VCD DVD光盘) (如VCD DVD光盘) 6.用数字代码表示命令与状态 6.用数字代码表示命令与状态
溢出的具体判断方法将结合实例在后续课程中介绍
8
3. 微机中所能表示的数值类型
(1)无符号二进制数(字节、字和双字) (2)带符号的二进制定点整数形式(16、 )带符号的二进制定点整数形式(16、 32、64位补码表示)和18位BCD码整数形 32、64位补码表示) 18位BCD码整数形 式(80bit)。 (80bit)。 (3)浮点数(IEEE754标准) 包括数符 )浮点数(IEEE754标准) S、阶码E和尾数D三个字段。 、阶码E和尾数D
+38
阶 E长 ( ) 8 码 度位 最 阶 大 码 +127 最 阶 小 码 阶 偏 量 码 移 表 数 围 示 范 -126 +127 10 ~10
-38
15 +16383 -16382 +16383
+308
12
10 ~10
-308
微机中浮点数表示成规格化形式,如下图所示:
单精度 23 22 0 码 尾数有效位 1· 63 62 52 51 0 符号位 阶 码 尾数有效位 1· 79 78 64 63 0 符号位 阶 码 尾数有效位 微机中浮点数的三种表示形式
14
例:将下面Pentium机中的单精度浮点数 表示成十进制真值是多少?
0011 ,1111,0101,1000,0000,0000,0000,0000
数符:S=(-1) 0=1 (正号) 阶码: E=(01111110)2-127=126-127= -1 尾数: D=(1.1011)2 X= 1.1011x2-1= (0.11011)2=0.84375
正数的尾数应为0.1x….x 正数的尾数应为0.1x….x 负数的尾数应为1.1x….x 负数的尾数应为1.1x….x
尾数用补码表示时,小数最高位应与数符符号位 相反。
正数应满足 1/2≦d<1,即 0.1x….x 1/2≦d<1,即 负数应满足 -1/2 > d≥ -1,即 1.0x….x
5
例题:设某机器用32位表示一个实数,阶码部分8位 (含1位阶符),用定点整数补码表示;尾数部分24 位(含数符1位),用规格化定点小数补码表示,基 数为2。则:
7
(3) 溢出问题
定点数的溢出——根据数值本身判断 定点数的溢出——根据数值本身判断 浮点数的溢出——根据规格化后的阶码判断 浮点数的溢出——根据规格化后的阶码判断
上溢——浮点数阶码大于机器最大阶码—— 上溢——浮点数阶码大于机器最大阶码—— —— 中断 下溢——浮点数阶码小于机器最小阶码—— 下溢——浮点数阶码小于机器最小阶码—— 零处理
最高位之前。
如:D 如:D0. D-1 • • • • • • D-(n-2) D-(n-1) (n(n(n范围:1 范围:1 - 2-(n-1) ~ -1 (采用字长n=16位时其值为 采用字长n=16位时其值为 32767/32768 ~ -1) 其中n 其中n表示字长多少位
2
2. 数的浮点表示方法
20
数字化方法表示信息的优点:
抗干扰能力强,可靠性高; 抗干扰能力强,可靠性高; 位数增多则数的表示范围可扩大; 位数增多则数的表示范围可扩大; 物理上容易实现,并可存储; 物理上容易实现,并可存储; 表示信息的范围与类型极其广泛; 表示信息的范围与类型极其广泛; 能用逻辑代数等数字逻辑技术进行处理. 能用逻辑代数等数字逻辑技术进行处理.
(1) 浮点数的表示:是把字长分成阶码和 尾数两部分。其根据就是: E
X = D•2
① ②
J
阶符
Em-2…….E0 …….
阶码值
J
S
数符
D-1……D-(n-1) (n-
. Biblioteka Baidu数值
D-1……D-(n-1) (n-
S
J Em-2
……. …….E0
数符 阶符
阶码值
. 尾数值
3
通常,阶码为补码或移码定点整数,尾数为补码或原码 定点小数。
11
微 中 种 同 型 点 的 式 机 三 不 类 浮 数 格 参 数 单 度 精 浮 数 度位 点 长( ) 32 符 位 号 数 尾 长 P(位 数 度 ) 双 度 精 64 80 扩 精 展 度
1 1 1 23+1( ) 52+1( ) 64 隐 隐 11 +1023 -1022 +1023
16
信息的数字化表示形式
数字信号: 数字信号:是一种在时间上或空间上离散 的信号,单个信号是常用的二值逻辑(0或 的信号,单个信号是常用的二值逻辑(0或 1),依靠多位信号组合表示广泛的信息. 1),依靠多位信号组合表示广泛的信息.
17
1.用一串脉冲信号表示数字代 码 (先发低位后发高位为例)
U 1 0 1 1
10
IEEE754标准格式如下
(-1)S 2E (D0.D-1……D-(P-1)) ……D (P最高是数符S 位,0表示正、1 最高是数符S占1位,0表示正、1表示负; 指数项E,基数是2 指数项E,基数是2,E是一个带有一定偏 移量的无符号整数;尾数部分D 移量的无符号整数;尾数部分D,它是一 个带有一位整数位的二进制小数真值形 式。其规格化形式应调整阶码使其尾数 整数位D 整数位D0为1且与小数点一起隐含掉。
(2)浮点数的规格化
目的:字长固定的情况下提高表示精 度的措施: 1 增加尾数位数(但数值范围减小) 2 采用浮点规格化形式
4
规格化方法:调整阶码使尾数满足下列关系: 尾数为原码表示时,无论正负应满足1/2< 尾数为原码表示时,无论正负应满足1/2<|d |<1 即:小数点后的第一位数一定要为1 即:小数点后的第一位数一定要为1。
(1). 定点整数——小数点位置固定在数的最低位之后 如: Dn-1 Dn-2 • • • • • • D1 D0 . 范围: 2n-1 -1 ~ -2n-1 (采用字长n=16位补码时其 采用字长n=16位补码时其 值为32767 值为32767 ~ -32768) (2). 定点小数——小数点位置固定在数的符号位之后、数值
3.2.3 定点数和浮点数 计算机中的两种表示方式
数值范围:一种数据类型所能表示的最大值和 最小值 数据精度:实数所能表示的有效数字位数。 数值范围和数据精度均与使用多少位二进制位 数以及编码方式有关。 计算机用数字表示正负,隐含规定小数点。 采用“定点”、“浮点”两种表示形式。
1
1. 数的定点表示方法
2.硬件快速乘法器实现 2.硬件快速乘法器实现
利用中大规模集成电路芯片, 利用中大规模集成电路芯片,在一拍节中实现多项 部分积的相加,成为阵列乘法器。 部分积的相加,成为阵列乘法器。
22
3.3.1 定点数一位乘法 1. 定点原码一位乘
规则:在机器中采用A,B,C寄存器来分别存放部分积 规则:在机器中采用A,B,C寄存器来分别存放部分积,被乘 寄存器来分别存放部分积, 数和乘数 在机器内一次加法操作只能求出两数之和, (1)在机器内一次加法操作只能求出两数之和,因此 每求得一个相加数时,就得与上次部分积相加。 每求得一个相加数时,就得与上次部分积相加。 人工计算时,相加数逐次向左偏移一位, (2)人工计算时,相加数逐次向左偏移一位,由于最 后的乘积位数是乘数(或被乘数)的两倍. 后的乘积位数是乘数(或被乘数)的两倍.由于在求本 次部分积时,前一次部分积的最低位,不再参与运算, 次部分积时,前一次部分积的最低位,不再参与运算, 因此可将其右移一位。相加数可直送而不必偏移, 因此可将其右移一位。相加数可直送而不必偏移,于是 位加法器就可实现两个N位数相乘。 用N位加法器就可实现两个N位数相乘。 部分积右移时乘数寄存器同时右移一位, (3)部分积右移时乘数寄存器同时右移一位,这样可 以用乘数寄存器的最低位来控制相加数( 以用乘数寄存器的最低位来控制相加数(取被乘数或 ),同时乘数寄存器的最高位可接收部分积右移出来 零),同时乘数寄存器的最高位可接收部分积右移出来 的一位,因此,完成乘法运算后, 的一位,因此,完成乘法运算后,A寄存器中保存乘积 的高位部分,乘数寄存器C中保存乘积的低位部分。 的高位部分,乘数寄存器C中保存乘积的低位部分。 23
21
3.3 二进制乘法运算
1.软件编程方法实现(时序控制乘法器) 1.软件编程方法实现 时序控制乘法器) 软件编程方法实现(
由手算到机器实现,要解决三个问题:符号问题、 由手算到机器实现,要解决三个问题:符号问题、 部分积相加进位问题、移位问题。 部分积相加进位问题、移位问题。 原码乘法是先取绝对值相乘,再根据同号相乘为正、 原码乘法是先取绝对值相乘,再根据同号相乘为正、 异号相乘位负,单独决定符号位。 异号相乘位负,单独决定符号位。补码乘法则让符号 位直接参加运算,算法将会复杂一些。 位直接参加运算,算法将会复杂一些。
1.
求X=256.5 的第一种浮点表示格式
X=(256. 5)10 =+(100000000.1)2 =+(0.1000000001 x 2+9 )2
8位阶码为:(+9)补=0000 1001 位阶码为:(+9 +9) 24位尾数为:(+0.10 0000 0001)补 24位尾数为:(+0.10 =0.100 0000 0010 0000 0000 0000 所求256.5的浮点表示格式为: 所求256.5的浮点表示格式为: 0000 1001 0100 0000 0010 0000 0000 0000 用16进制表示此结果则为:(09402000)16 16进制表示此结果则为:(09402000)
6
2. 求Y= -256.5 的第一种浮点表示格式
Y=-(256. 5)10 =-(100000000.1)2 Y==-0.1000000001 x2+9 x2 8位阶码为:(+9)补=0000 1001 位阶码为:(+9) 24位尾数为:(-0.10 0000 0001)补 24位尾数为:( =1.011 1111 1110 0000 0000 0000 所求-256.5的浮点表示格式为: 所求-256.5的浮点表示格式为: 0000 1001 1011 1111 1110 0000 0000 0000 用16进制表示此结果则为:(09BFE000)16 16进制表示此结果则为:(09BFE000)