2010-10-19 110 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