计算机科学导论链式存储,补基础:自学:计算机科学导论 第三章 数据存储 续...

1. 浮点表示法

该表示法允许小数点浮动,用于维持正确度或精度。

在此表示法中,无论十进制还是二进制,一个数字都由3部分组成: 符号

位移量: 显示小数点应该左右移动构成实际数字的位移量。

定点数:小数点位置固定的定点表示法

例子 3.18 - 3.19 展示了如何使用科学技术法,比如 + 7425000000000000000000.00可表示为 +7.425 * 1021  或者是+7.425E21

例子 3.20 用浮点格式表示数字(101001000000000000000000000000000.00)2

可用科学技术法表示为: 1.01001 * 232

2. 规范化

十进制: +- d.xxxxxxxxxxx  其中,d是1到9, 每个x是0到9

二进制: +- 1.yyyyyyyyyyy  其中,每个y是0或1

3. 符号、指数和尾数

一个二进制数规范化之后,只存储该数的3部分信息: 符号:可以用一个二进制位来存储(0或1)

指数(2的幂):定义为小数点移动的位数。可正可负

尾数:指小数点右边的二进制数

例如: + 100111.0101 可表示为 +1.0001110101 * 26

此数符号为+、指数为6、尾数为0001110101

4. 余码系统

尾数可作为无符号数存储。指数是有符号的数,可用余码系统来存储。

余码系统:正负整数都可作为无符号数存储。为了表示正/负整数,将正整数(称为一个偏移量)添加到每个数字中,将它们统一移到非负的一边。这个偏移量的值是2m-1 – 1, m是内存单元存储指数的大小。

例 3.22 4位存储单元在数字系统中表示16个整数。 使用一个单元作为0,分开其他15个,在-7到8的范围中表示整数。注意,他们并不一定是对称的。

在该范围中增加7个单位到每隔整数中,可以统一把所有整数向右移,使其均为整数而无需改变这些整数的相对位置,避免互相调整。 原系统 -7 –6 – 5 –4 –3 –2 –1 0 1 2 3 4 5 6 7 8

偏移后 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

偏移后的系统称为余7码

位移后与位移前,优点在于余码系统中的所有整数都是正数。对于以上的4位存储单元,偏移量为24-1 – 1 = 7

5. IEEE标准 单精度 余127码 符号 指数 尾数

32位 1 8 23

双精度 余1023码 符号 指数 尾数

64位 1 11 52

6. IEEE标准浮点数的存储

1)在S中存储符号(0或1)

2)将数字转换为二进制

3)规范化

4)找到E和M的值

5)连接S,E和M

例 3.23 写出十进制数5.75的余127码(单精度)表示法

解: 1)符号为正,所以S = 0

2)十进制转换为二进制:5.75 = (101.11)2

3)规范化:(101.11)2 = (1.1011)2 * 22 。

4)E = 2 + 127 = 129 = (10000001)2 , M = 1011。需要在M的右边增加19个0使之称为23位。

5)最终S = 0, E = 10000001, M = 1011000000000000000000

存储在计算机中的数字是0 1000001 10110000000000000000000

例 3.24 写出十进制数-161.875的余127码(单精度)表示法

解: 1)符号为负,所以S = 1

2)十进制转换为二进制:-161.875 = (10100001.111)2

3)规范化:(10100001.111)2 = (1.10100001111)2 * 27 。

4)E = 7 + 127 = 134 = (10000110)2 , M = 0100001111。需要在M的右边增加19个0使之称为23位。

5)最终S = 1, E = 10000110, M = 01000011110000000000000

存储在计算机中的数字是1 10000110 01000011110000000000000

7. 将存储为IEEE标准浮点格式的数字还原

1)找到S、E和M的值

2)如果S = 0, 将符号设为证号,否则设为负号

3)找到位移量(E - 127)

4)对尾数规范化

5)将规范化的数字变为十进制以求出绝对值

6)加上符号

例3.26 位模式(11001010000000000111000100001111)2 以余127码格式存储于内存中,求该数字十进制计数法的值。

解:1)首位表示S,后8位是E,剩下23位是M

S = 1, E = 10010100, M = 00000000111000100001111

2)符号为负号

3)位移量 = E –127 = 148 – 127 = 21

4)将(1.00000000111000100001111)2 * 221 规范化

5)二进制数为1000000001110001000011.11

6)绝对值是2104378.75

7)该数字是-2104378.75

8.上溢和下溢

该表示法不能存储很小或很大的绝对值。

试图存储绝对值很小的数导致下移,存储绝对值很大的数导致上溢情况。

9. 存储0

这种情况下符号 、指数和尾数都设为0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值