浮點格式(IEEE)有32位。該符號的第一位,之後8位爲偏置指數,之後爲尾數的另外23位。在這個尾數是第一個1(始終是1)總是隱藏,這導致我的問題:數字0在二進制浮點格式中看起來如何?
數字0在這種格式看起來如何?因爲如果指數0的數字將始終爲1. 加上尾數總是最小值1右邊?如果他們只在尾數爲零,它將計爲'1.0'...
我真的不明白這一點。
浮點格式(IEEE)有32位。該符號的第一位,之後8位爲偏置指數,之後爲尾數的另外23位。在這個尾數是第一個1(始終是1)總是隱藏,這導致我的問題:數字0在二進制浮點格式中看起來如何?
數字0在這種格式看起來如何?因爲如果指數0的數字將始終爲1. 加上尾數總是最小值1右邊?如果他們只在尾數爲零,它將計爲'1.0'...
我真的不明白這一點。
Wikipedia告訴你:
0000 0000 = 0
8000 0000 = −0
除了普通的浮點值,用指數和mantisse還有其他不規則的數字像零,無窮一堆和一堆的NaN。還有subnormal numbers;其中低於2^-127的數字用固定的而不是浮動指數近似。
其實,零是一個正常次正常數。 Subnormals編碼爲(−1)signbits×2^−126 × 0.significandbits
,指數全零。如果有效位爲零,則結果爲(+/-)零。
IEEE 754二進制浮點數與偏置指數零不是歸一化,並且沒有隱含的一個位在二進制點之前尾數。零有效值意味着0.0 * 2^x,而不是1.0 * 2^x。
這意味着0就是這樣定義的,並且沒有一種算術方法來獲得正確的解決方案? – bnntd 2014-10-08 07:44:07
正如你已經注意到的那樣,沒有'x'其中'1.0 * 2^x'永遠爲零,所以不,沒有「算術」的方法來達到0. – 2014-10-08 08:25:53
據我所知,零是一個*正常*低於正常數量。它們是'(-1)signbits×2-126×0.significandbits',如果有效位爲零,則結果爲(+/-)零。 – Mathias 2014-10-09 08:36:21