據我所知道的雙(IEEE標準)有一個位爲signus,爲尾數,基本54位和指數表示
公式得到雙倍的一些位:(−1)^s × c × b^q
也許我犯了一些錯誤,但主意在這裏。
我只是想知道我們如何知道在哪裏把這個公式放在小數點。 如果我拿號,我收到例如:
m = 3
q = 4
s = 2
b = 2
(-1)^2 * 4 * 2^3 = 32
,但我不知道在哪裏放一些小數點..
這裏有什麼問題?
編輯:
也許q總是負的?
據我所知道的雙(IEEE標準)有一個位爲signus,爲尾數,基本54位和指數表示
公式得到雙倍的一些位:(−1)^s × c × b^q
也許我犯了一些錯誤,但主意在這裏。
我只是想知道我們如何知道在哪裏把這個公式放在小數點。 如果我拿號,我收到例如:
m = 3
q = 4
s = 2
b = 2
(-1)^2 * 4 * 2^3 = 32
,但我不知道在哪裏放一些小數點..
這裏有什麼問題?
編輯:
也許q總是負的?
32 = 1 * 2^5,所以尾數= 1,指數= 5,符號= 0。編碼指數時,我們需要將1023加入指數,所以下面我們有1023 + 5 = 1028。此外,我們需要刪除數字1編碼尾數時,使1(無論)變爲(無論)
32爲64位雙IS 40400000億,或二進制的十六進制表示:
0100 0000 0100 0000 0000 ... and zeros all the way down
^======== start of mantissa (coded 0, interpreted 1.0)
^===========^---------- exponent (coded 1028, interpreted 5)
^----------------------- sign (0)
要驗證結果訪問此page,在第一個字段中輸入32,然後單擊Rounded或Not Rounded按鈕(無關緊要)。
我想看看維基百科會有所幫助。
事情是,有一個「隱藏」'1.'在IEEE公式中。
每個IEEE 754數量必須normlized,這意味着已編碼的數的格式爲:
(-1)^(sign) * '1.' (mantissa) * 2^(exponent)
因此,已編碼的1.32,不32.
該符號僅在一位 - 如何可以s = 2?正值爲0,負值爲1。 – etienne 2011-06-06 08:49:56
確實是錯誤的 – Guillaume07 2011-06-12 10:52:05