[问题] 计算机概论-浮点数

楼主: legendsaga74 (柏青哥PA)   2016-08-20 00:16:45
请教各位先进
小弟读过计概补习班讲义后 自以为有读懂浮点数章节部份
没想到看了几题考古题才一直卡卡卡卡 囧囧囧囧
原来讲义没提到 非IEEE754标准的非正规形式浮点数
去wiki跟google补完后 还是有观念卡住 还请不吝解惑
Question: 指数范围部份、最大最小数值部份
以IEEE754 单精度浮点数为例 指数部份 8 bits
亦即指数范围在 0 ~ (2^8 -1) => 0~255
又IEEE754定义保留 0,255 为特殊值 (0给正负0用,255给正负无限大用)
所以剩下 1~254 , 减去偏移值 127 ( 127 = 2^(8-1) -1 )
真正的指数范围为 -126~127 (题目常出求最大最小正负数用)
所以此例 最大正数= + 2^127 * 1.11111....
最小负数= - 2^127 * 1.11111....
最小正数= + 2^-126 * 1.0
最大负数= - 2^-126 * 1.0
以上有错还请指正(?)
可是考题做到这两题时就搞不懂了
根据WIKI - 非正规形式的浮点数的指数偏移值比正规形式的浮点数的指数偏移值大1
https://zh.wikipedia.org/wiki/IEEE_754#cite_note-2
=> 非正规浮点数偏移值 2^(N-1) ; 正规浮点数偏移值 2^(N-1) -1
接着看题目


左题指数部份 3 bits ,题目写明是正规化浮点数
为何解题部份 求大小数范围时 指数范围取 -4~3 ? (即 000 -4 , 111 -4)
2 2
所以没有保留位的设定? 正规形式跟IEEE标准是两码子事? (混淆了...)
右题指数部份 5 bits,题目很明显是非IEEE标准了
5 bits 意即 指数范围在 0 ~ 31, 减去偏移值 2^(5-1)
后 真正指数范围在 -16~15,符合下面解答的写法
可是保留位呢 QQ 思考一直转不过来 Orz
楼主: legendsaga74 (柏青哥PA)   2016-08-20 00:23:00
" target="_blank" rel="nofollow">
另请教(三)的答案!
作者: jimmylo (迷路的小孩)   2016-08-20 02:01:00
题题目有说指数以"超四码"表示为什么你要忽略它?(三)C最大表示11111所以指数最大表示为31-16=15C最小为00000指数为0-16=-16 剩下用最大最小尾数带进去推文题目有一小段觉得有错有数点右边第一位元恒不为0本文第(三)题解答倒数第二行尾数=01111 故为1 110 1111看起来也有错误逆推回去没办法得到-5.875
楼主: legendsaga74 (柏青哥PA)   2016-08-20 09:11:00
谢谢楼上 超4码有看到 但是在IEEE标准及非IEEE标准上 不同题目的指数范围有些混淆...
作者: jimmylo (迷路的小孩)   2016-08-21 01:56:00
你问的题目算是"单精确"的变化可以先看看原始如何计算
作者: ChyiAnPan (恩~喔!)   2016-08-21 09:45:00
" target="_blank" rel="nofollow">
再ㄧ例" target="_blank" rel="nofollow">
楼主: legendsaga74 (柏青哥PA)   2016-08-21 19:10:00
谢谢楼上

Links booklink

Contact Us: admin [ a t ] ucptt.com