刚学计算机组成原理,遇到一个浮点数问题

蓝兔先生 2015-03-02 03:47:35
关于规格化转化, 有一题目:

将 0.0011 X 2^0 转换成规格化数标示, 尾数和符号位采用 5 位补码编码, 阶码采用 3 位移码。

解:
0.0011 X 2^0 是正数, 其符号位为 0, 在规格化时需要将尾数左移 2 位, 以使小数点后第一位为 1, 规格化后表示为 0.1100 X 2^-2。[0.1100 X 2^-2]浮 = 00101100。

很纳闷, 这个 [0.1100 X 2^-2]浮 = 00101100 的结果是怎么算来的。 在线等。。。谢谢各路大神
...全文
250 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cysccnu 2015-03-07
  • 打赏
  • 举报
回复
引用 5 楼 cysccnu 的回复:
符号位1位,尾数位4位,后4位小数1100为尾数,符号位为0,阶码在符号位之后,尾数位之前,有三位010(十进制2) 所以结果为 : 0(符号位)010(阶码)1100(尾数) p.s. 不过有的资料上规格化应该是1.1 * 2^ -3,浮点编码应该为 01101000
更正一下: 不太理解"尾数和符号位采用 5 位补码编码, 阶码采用 3 位移码"这句的意思。 总之按IEEE浮点定义,0.0011 X 2^0转化为规格化是1.1 * 2 ^ -3,阶码是 2 ^ (3-1) = 4,所以符号位为0,指数位为 -3 + 4 =1,二进制001,小数位为1000,所以浮点编码为 00011000 即使不是以8位编码浮点,按4字节32位编码,其符号位为 0 ,指数位为 -3 + 127 = 124 (01111100),小数位为 10000000000000000000000,浮点编码为 00111110010000000000000000000000 (3E400000h),在编译器中调试可以看到浮点数0.0011 X 2^0 = 0.1875 在内存中的表示确实是3E400000h
cysccnu 2015-03-06
  • 打赏
  • 举报
回复
符号位1位,尾数位4位,后4位小数1100为尾数,符号位为0,阶码在符号位之后,尾数位之前,有三位010(十进制2) 所以结果为 : 0(符号位)010(阶码)1100(尾数) p.s. 不过有的资料上规格化应该是1.1 * 2^ -3,浮点编码应该为 01101000
蓝兔先生 2015-03-02
  • 打赏
  • 举报
回复
引用 1 楼 luciferisnotsatan 的回复:
google IEEE 754 这个标准
看了下, 但是没太明白, 能详细点吗
蓝兔先生 2015-03-02
  • 打赏
  • 举报
回复
引用 2 楼 hwasd 的回复:
10分不回答
哥你饶了我把, 就10分了
  • 打赏
  • 举报
回复
10分不回答
luciferisnotsatan 2015-03-02
  • 打赏
  • 举报
回复
google IEEE 754 这个标准

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧