2010-10-19 97 views
3

我想將基於IEEE的浮點數轉換爲MIL-STD 1750A浮點數。浮點標準之間的轉換

我重視的規範,既: alt text

我知道如何分解浮點12.375 IEEE格式爲每example on wikipedia.

但是,我不知道如果我的解釋MIL-STD是正確的。

12.375 =(12)B10 +(0.375)B10 =(1100)B2 +(0.011)B2 =(1100.011)B2 (1100.011)B2 = 0.1100011×2^4 =>指數,E = 4。

4歸一化的2的補是=(100)B2 =指數

因此一MIL-STD 1750A 32位浮點數是:

S=0, F=11000110000000000000000, E=00000100 

是我的上述解釋正確的嗎?

對於-12.375,它只是交換的符號位?也就是說:

S=1, F=11000110000000000000000, E=00000100 

或者做一些有趣的事情發生與小數部分?

回答

4

我想上面的圖有點誤導。在IEEE格式中,要從正面切換到負面,只需簡單翻轉第一個位即可。其餘的三位可以被視爲一個無符號數字。在MIL-STD格式中,尾數是二進制補碼,因此雖然第一位確實表示符號,但剩餘的23位不會保持相同。

我得到的是

S=1, F=00111010000000000000000, E=00000100 
+0

如此看來你讓分數1100011 2的補=> 0011101,然而在小數成分其餘位仍0的? – Seth 2010-10-19 05:42:50

+3

是的,採取二進制補碼否定,採取按位非並加一:所以當你不按比特時,你最終在最右邊的16 1,然後當你添加一個,他們都結轉。 – Tristan 2010-10-19 16:07:02

+0

+1當然。謝謝。 – Seth 2010-10-19 22:48:42