请教各位先进
小弟读过计概补习班讲义后 自以为有读懂浮点数章节部份
没想到看了几题考古题才一直卡卡卡卡 囧囧囧囧
原来讲义没提到 非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
接着看题目
http://i.imgur.com/vMYjYw3.png
左题指数部份 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