0

我很難理解爲什麼下面的二進制減法給出了它的結果。我不斷得到不同的答案。我試圖計算0.1-x,使得x是0.00011001100110011001100。答案應該是0.000000000000000000000001100 [1100] ...(1100不斷重複)當我這樣做的時候,我一直得到1100。小數二進制減法

我沒有正確地做什麼?

+0

你有什麼試過的?你的答案到底是什麼?你爲什麼認爲答案應該不斷重複? – 2012-04-09 20:56:22

+0

你怎麼知道這是「應該」的答案?這不是接近我得到的答案。 – 2012-04-10 01:59:28

+0

將你的'答案應該'和你給定的'x'加在一起。你有'0.1'嗎?這對你提出的'答案'有什麼影響? – AakashM 2012-04-10 08:12:48

回答

0

我認爲你的預期答案是錯誤的。這是我的解決方案。我將這些位分組爲nybbles,以便它看起來可讀。

0.1000 0000 0000 0000 0000 0000 <- added zero to the rightmost to fill in the nybble 
- 0.0001 1001 1001 1001 1001 1000 <- added zero to the rightmost to fill in the nybble 
_________________________________ 

得到2的補碼0.0001 1001 1001 1001 1001 1000

1.1110 0110 0110 0110 0110 0111 (1's complement) 
+ 0.0000 0000 0000 0000 0000 0001 
_________________________________ 
    1.1110 0110 0110 0110 0110 1000 (2's complement) 

將2的補碼加到0.1

0.1000 0000 0000 0000 0000 0000 
+ 1.1110 0110 0110 0110 0110 1000 
_________________________________ 
10.0110 0110 0110 0110 0110 1000 

由於溢出是1,無視它。它只是表示最終答案是一個正數,因爲0.1大於0.0001 1001 1001 1001 1001 1000。因此,最終的答案是0.011001100110011001101000