計算機內部的二進位制浮點數加減運算

2021-10-04 03:18:13 字數 915 閱讀 4848

十進位制科學計數法的加法例子

1.123×10^5 + 2.560×10^2

=1.123×10^5 + 0.002560×10^5

=1.12556×10^5

=1.126×10^5

進行尾數加減運算前,必須「對階」!最後還要考慮捨入。

計算機內部的二進位制運算也是一樣。

「對階」操作:目的是使兩數的階碼相同。小階向大階看齊,階小的那個數的尾數右移,右移位數等於兩個階碼差的絕對值。

ieee 754尾數右移時,要將隱含的「1」移到小數部分,高位補0,移出低位保留到特定的「附加位」上。

例子1:用二進位制浮點數形式計算 0.5+(-0.4375)

解: 將兩數轉換為二進位制

0.5=1.000×2^-1 , -0.4375= -1.110×2^-2

對階:-1.110×2^-2 ——> -0.111×2^-1

加減:1.000×2^-1 + (-0.111×2^-1)= 0.001×2^-1

左規:0.001×2^-1 ——> 1.000×2^-4

判斷溢位:無

結果:1.000×2^-4 = 0.0625

例子2:用二進位制浮點數形式計算 26.5+4.375

解:將兩數轉換為二進位制

26.5=11010.1=1.10101×2^4

4.375=100.011=1.00011×2^2

對階:1.00011×2^2 ——> 0.0100011×2^4

相加:1.10101×2^4 + 0.0100011×2^4

=1.1110111×2^4

=30.875

判斷溢位:無

若有錯誤的地方請各位指教。

浮點數的二進位制

1.前幾天,我在讀一本c語言教材,有一道例題 include void main void 在我的編譯器下 編譯是會發生錯誤的。錯誤 cannot convert from int to float win7 vc6.0 sp6 執行結果如下 num的值為 9 pfloat的值為 0.000000 ...

浮點數轉化二進位制

乙個int型別表示的整數值是 2 31 2 31 1 32位二進位制表示 1111111111111111 11111111 11111111 011111111 11111111 11111111 1111111 類似整數聯想到浮點數是怎麼表示的呢?最初正常人可能為這樣想的 但是這樣好像表示的數也...

計算機32位浮點數二進位制編譯碼

原文參考 有編輯整數怎樣轉2進製,小數怎樣轉2進製就不說了。12.5 1.整數部分12,二進位制為1100 小數部分0.5,二進位制是.1,先把他們連起來,從第乙個1數起取24位 後面補0 1100.10000000000000000000 這部分是有效數字。把小數點前後兩部分連起來再取掉頭前的1,...