浮點數階碼的計算和表示

關於IEEE754中,通常教材提到階碼都是用移碼錶示,計算規則倒是偏置值+階數。html

舉個栗子:spa

關於移碼的一個問題,有點糊塗了

好比說IEEE 754的浮點數表示,在32位浮點寄存器中,-8.25的16進製表示是多少。
我怎麼算都是C1840000H,而答案是C1040000H。
這其中的差異就在階碼上。階碼是用移碼錶示的。8.25也就是1000.01,就是1.00001乘以2^3.階碼是3.
問題來了。根據 移碼就是補碼符號位取反,3的補碼是0000011.因此移碼就是10000011;
但是答案裏面說,移碼就是127+3=130.因此是10000010;htm

上面的問題來源於百度知道,也是昨天困擾個人一個問題,查閱了相關資料才知道原來這裏的階碼並非直接用移碼錶示的,get

準確來講是用階數的移碼減一表示的,因此3的移碼10000011B減一即:10000010B,數值上等於 偏置值+階數,即127+3=130(10000010B)。it

這裏的減一也從側面理解了爲啥階碼的數值範圍是通常都是1~254 or 1~2046 。好比8位階碼的短浮點數,當階碼爲1111 1111Bio

移碼數值爲+127即2的128(127+1即實際的階數)次方已超太短浮點數可表示的範圍,算爲無窮大。class

相關文章
相關標籤/搜索