计算机组成原理——浮点数表示方法

最好举例说明!... 最好举例说明! 展开
 我来答
匿名用户
2013-07-27
展开全部
进入百度百科里,输入浮点数,就能找到了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pardream941026
2019-03-20 · TA获得超过8215个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1267万
展开全部

这个不应该在这问那,应该直接在网上搜浮点数的说明文档。

计算机里,浮点数有4种,我们常用的是单精度浮点数:32位,与多精度浮点数64位2种。

浮点数的标准:IEEE754。

以32位的单精度浮点数来说明:我们知道,不管是整数,还是小数,计算机只能以2进制来表达。由此,整数部分,我们从右向左数,第n位1个bit位代表该位上2的n次方(从0数),加起来就是10进制的该数。小数部分也相同,从小数点后面第1位开始,第n位代表的值是1/(2的n次方),所有位加起来就是小数部分的值。但这样表示的结果就是有一些小数,用2进制表达是无限多个2进制位,而计算机的位数是有限制的,所以这类数,就只能是近似值。

举例:0.6

n      1/2^n                      减去该位值后结果              该位2进制值

1       0.5          < 0.6         0.6-0.5=0.1                     1

2      0.25        > 0.1         无操作    0.1                      0

3      0.125     > 0.1          无操作    0.1                      0

4     0.0625     < 0.1        0.1-0.0625=0.0375            1

5.    0.03125  < 0.0375  ............       0.006                  1

6.   0.015625 > 0.006                     0.006                  0

7.  0.0078125 >0.006                     0.006                  0

....                                                                               1 (第8位应该是1)

这样,一直算下去,不知道多少位之后,才能除尽,也可能永远也除不尽,比如1/3这样的数。

0.6 的2进制,我们取到8位的话,就是0.10011001

-------------------------------------------------------------------------

以上部分是解说2进制表达小数(整数部分就不说了,我认为你既然已经研究到浮点数,整数部分的换算应该很清楚了)

IEEE754中,定义了32位的浮点数的表达方式:

(1) 最高位是符号位       0 正,1负

(2) 最高位之后的8位(23-31位),代表指数,规则是:以127为基准即(0111111),加上(指数为正)或减去(指数为负)指数的数值,这个稍后详细说。

(3)剩余的23位(0-22位)表示浮点数的小数部分(特别说明:2进制的小数部分),小数点左侧的1,默认存在,不保存。

重要的部分就是以上3点,然后,我着重讲第2点。

举个例子:10进制的 52.75,化为2进制数就是110100.11(正好除尽,好理解。)

然后,我们把小数点左移5位,变成1.1010011,那么指数的数值,就是+5

先说第(3)条里的最后一句话:小数点的左侧的1,是肯定存在的,因为浮点数的定义规则就是,1.xxxx,(之所以是1.xxx,因为这是2进制,我刚开始看书的时候,就对这个不理解,总是用10进制的数去想这句话,后来才发现,作者忘了加个注释:2进制),另外,还有一个特殊的数: 0,左侧为1这个规则对0这个数无效,

比如:前面的例子0.6=0.10011001 = 1.0011001 x (2的-1次方),指数就是-1。所以总能把小数点左侧变成1,肯只保留1位。IEEE为了节省保存这个1的空间,就故意约定,不保存它了。

理解这个之后,明白几点:

  1. 数据要转换为2进制数

  2. 数据要转换为1.xxxx  乘以(2的n次方)的形式。

  3. 只使用小数点右侧的2进制数

然后,再看第(2)条:

  1. 最高位,由于是正数,所以是0

  2. 指数部分,127 + 5 = 132,化为2进制数:10000100

  3. 小数部分,10100110 00000000 0000000

  4. 把1,2,3合起来,就是0 10000100  10100110 00000000 0000000

    这就是浮点数表示的52.75

篇幅关系,就不解释其它几种类型,原则都是一样的,按照IEEE标准就看就可以了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式