二进制计算问题,浮点表示

问题描述:

二进制计算问题,浮点表示
最近在看唐朔飞老师的计算机组成原理,里面有几个计算看不懂(数的浮点表示方面),
11.0101=0.110101*(2^10)=1.10101*(2^1)//这些都是二进制数
这个是怎么来的,如果要看懂这个式子还需要哪方面的知识,先谢谢回答的人了

你的等式是不是有问题呀,中间的应该是2^2 就是逢二进一
存储实数(浮点数)
一个数字的浮点表示法由三个部分组成:符号、位移量(指数)、定点数.
例如:
实际数字:7425000000
科学计数法:7.425×10^9
这三部分为符号(+)、位移量(9)以及定点部分(7.425).注意位移量就是指数.
类似的方法可以表示很小或者很大的存储在计算机中的二进制数字(整数和实数都可以).
例如:
实际数字:101001000
科学计数法:1.01001×2^8
所以,为了使表示法的固定部分统一,无论是十进制的数还是二进制的数都写成以下形式
十进制——————±d.xxxxxxxxxxx注意:d是0到9的数,每个x都是0到9的数
二进制——————±1.yyyyyyyyyyy注意:每个y都是0或者1
在一个二进制数规范化之后,我们只存储该数的三部分信息:符号、指数、尾数.
例如:+1.0001110101×2^6
符号为+、指数6、尾数0001110101(注意小数点左边的1并不存储,它是隐含的)
尾数就是直接用无符号的数存储,指数部分应该用有符号的数存储,即补码存储,因为指数有可能是负数.但现在已经被一种叫余码系统的新方法所取代.在这种余码系统中,正的和负的数都可以作为无符号数存储,方法就是在指数的基础上统一加上一个数,这个数就是偏移量,它是2n-1,n是内存中存储指数的位数.如:指数占8位,那么偏移量就是127.这样做的好处就是指数经过加上偏移量后,所有的指数都将变成正数,统一用无符号数存储了!
IEEE标准
如今我们在计算机中存储实数分为单精度和双精度.IEEE为我们制定了相关的格式和标准具体如下:
单精度共占32位
符号S 指数E 尾数M
占1位 占8位 占23位
因为指数位占8位,所以偏移量为127,即余127码
双精度共占64位
符号S 指数E 尾数M
占1位 占11位 占52位
因为指数位占11位,所以偏移量为1023,即余1023码
例题:写出5.75的单精度表示法?(余127码)
1、 符号为正,所以符号位S=0
2、 十进制5.75转换为二进制位(101.11)2
3、 规范化:101.11=1.0111×2^2
4、 所以指数E=2+127=129=(10000001)2 尾数M=0111,不够23位在后面添19个0
5、 最后该数的表示法为:
010000001 01110000000000000000000
符号指数 尾数
6、所以5.75采用单精度存储,在计算机中应为01000000101110000000000000000000
大概就是这些知识点了我有点看懂了,那个指数其实也是二进制表示的,2^10其实也就是2^2,对吧??如果是这样的话,那么这些就都可以解释了应该是因为是二进制,因而底数是2 同时因为小数点前移两位,就变成指数为2,其实有点难以表达,但你这样你也没错吧,不过你给出的等式中间肯定不是2^10,上文中的第3句有差不多的等式,那是我们上学期学浮点数时老师发给我们的,认真看一下就好