2011-08-15 16 views
0

這個問題的擔憂轉換浮點數小於ABS(1)和負32.32格式,例如:-0.1234。如何表示-0二進制

當此被轉換爲32.32,整數部分和小數部分分別分隔成上部和下部32位字。在上面的例子中,高32位將保持-0,而低位將保持.1234,二者都轉換爲二進制。

所以現在的問題是,在這種情況下,一個人如何正確地表示二進制-0價值?

回答

3

這取決於。

+0

好一點。這個問題源於客戶的要求,該要求指定了在將雙值存儲到EEPROM時使用的數字格式。有趣的是,這個要求確實要求以「32.32 2的補碼格式」編碼數字。作爲2的補碼,如何將-0.1234的值編碼並寫入EEPROM,然後在不丟失負號的情況下檢索並解碼? – DougEC

+0

@doug:想到「32.32」的方式是它將代表某個數字「x」,其方式與「64.0」存儲'x *(1L << 32)'完全相同。 –

0

+0 == 0 == -0編程的實際目的。在這種情況下,你必須弄清負數如何被處理,但是底層系統。 (通常是two's complementsign bit)以及相應的猴子。