如何将二进制转换为科学记数法?

时间:2018-05-30 08:16:42

标签: verilog ieee-754

我试图在Verilog中解决这个问题

  

0.1 = 0.5 = 5×10 ^ -1

     

0.01 = 0.25 = 2.5×10 ^ -1

     

0.001 = 0.125 = 1.25×10 ^ -1

     

0.0001 = 0.0625 = 6.25 x 10 ^ -2

     

10.10101 = 3.65625 = 3.65625 x 10 ^ 0

     

110110.10101 = 54.65625 = 5.465625 x 10 ^ 1

所以从输入二进制文件中,我怎么知道10的指数是多少?此外,如何知道十进制值(即5,25,125,625,365625,5465625)?假设所有输入值都是24个二进制位(上面的示例分别是24位二进制输入的2,3,4,5,7,11 MSB)。

实际上,问题来自IEEE 754 32位,将其转换为科学记数法,但它没有说明输出要求是什么?所以我假设如果我有

  

1_10001010_00110110110100000000000 = -2486.5

我将有3个输出,一个是符号,一个是数字24865(小数点位于第一个数字后面),一个是10的指数。所以真正的问题是如果我有

  

1000.10(只是定点二进制)= 8.5

我可以计算整数部分(= 8)。但我找不到计算数字5(0.1)的方法。输出可以是2个部分,一个是整数,一个是分数。出现上述问题,整数为8,分数为5.

  

1111.10101(定点)= 15.62562

所以这里,整数是15,分数是62562.整数部分很容易,它就像它(1111是15,1000是8)。但是分数部分,我不知道如何转换(.1是5,.10101是62562)。

我该如何解决?谢谢

0 个答案:

没有答案