我正在尝试将基于IEEE的浮点数转换为MIL-STD 1750A浮点数。
我附上了两者的规范:
我理解如何根据example on wikipedia.
分解IEEE格式的浮点12.375但是,我不确定我对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.
标准化2的补码中的4 =(100)b2 =指数
因此,MIL-STD 1750A 32位浮点数为:
S=0, F=11000110000000000000000, E=00000100
我的上述解释是否正确?
对于-12.375,它只是交换的符号位吗?即:
S=1, F=11000110000000000000000, E=00000100
或者小部分会发生什么时髦的事情?
答案 0 :(得分:4)
我认为上图有点误导。在IEEE格式中,要从正切换到负切换,只需翻转第一位即可。其余三位可以视为无符号数。在MIL-STD格式中,尾数是二进制补码数,因此第一位确实表示符号,其余23位不保持不变。
我得到的是
S=1, F=00111010000000000000000, E=00000100