Floating point 将以下以IEEE浮点(S、分数、指数)表示的32位二进制数转换为十进制数

Floating point 将以下以IEEE浮点(S、分数、指数)表示的32位二进制数转换为十进制数,floating-point,binary,ieee,Floating Point,Binary,Ieee,0000000000000000000111011 如果我迷路了,我该如何解决这个问题。您的粗体显示您可能对字段的顺序有点困惑;IEEE通常使用浮点数的顺序。(顺便说一句,如果没有NAN或其他非数值,这允许使用两个补码整数排序对IEEE浮点数进行排序。) 那么我们在看什么呢?第一位是符号:0。所以我们有一个正数。(如何记住这一点?回到允许使用的整数排序——二补整数中的前导一表示它是负数。) 接下来的八位是指数:也是0。这是可能的最低指数值;它通常表示偏移127的无符号整数,或值-127。但是,指

0000000000000000000111011


如果我迷路了,我该如何解决这个问题。

您的粗体显示您可能对字段的顺序有点困惑;IEEE通常使用浮点数的顺序。(顺便说一句,如果没有NAN或其他非数值,这允许使用两个补码整数排序对IEEE浮点数进行排序。)

那么我们在看什么呢?第一位是符号:0。所以我们有一个正数。(如何记住这一点?回到允许使用的整数排序——二补整数中的前导一表示它是负数。)

接下来的八位是指数:也是0。这是可能的最低指数值;它通常表示偏移127的无符号整数,或值-127。但是,指数值0保留用于编码低于正常值的数字(小于通常可表示的最小数字);在这种特殊情况下,有效指数为-126,但不是表示数字1.fraction*2^指数,而是表示数字0.fraction*2^指数


最后,我们得到了分数,它是
00000000000001111
。所以我们的总数是0.0000000000000000111B*2^-126。将其转换为十进制将留给读者。

您的粗体显示您可能对字段的顺序有点困惑;IEEE通常使用浮点数的顺序。(顺便说一句,如果没有NAN或其他非数值,这允许使用两个补码整数排序对IEEE浮点数进行排序。)

那么我们在看什么呢?第一位是符号:0。所以我们有一个正数。(如何记住这一点?回到允许使用的整数排序——二补整数中的前导一表示它是负数。)

接下来的八位是指数:也是0。这是可能的最低指数值;它通常表示偏移127的无符号整数,或值-127。但是,指数值0保留用于编码低于正常值的数字(小于通常可表示的最小数字);在这种特殊情况下,有效指数为-126,但不是表示数字1.fraction*2^指数,而是表示数字0.fraction*2^指数


最后,我们得到了分数,它是
00000000000001111
。所以我们的总数是0.0000000000000000111B*2^-126。将其转换为十进制将留给读者。

我同意@addaon先前发布的答案。此外,在某些语言中可以轻松完成转换,包括Java:

public class Test {
   public static void main(String[] unused) {
      int raw = 0b0000000000000000000000000111011;
      float f = Float.intBitsToFloat(raw);
      System.out.println(f);
   }
} 
(您需要版本7来获取二进制文本,但在早期版本中,同样的事情可以少直接完成一点)


输出为8.3E-44,与解释为正非规范化数字以及转换网站一致。

我同意@addaon先前发布的答案。此外,在某些语言中可以轻松完成转换,包括Java:

public class Test {
   public static void main(String[] unused) {
      int raw = 0b0000000000000000000000000111011;
      float f = Float.intBitsToFloat(raw);
      System.out.println(f);
   }
} 
(您需要版本7来获取二进制文本,但在早期版本中,同样的事情可以少直接完成一点)


输出为8.3E-44,与解释为正数的非规范化数字以及转换网站一致。

您也可以查看,我对此没有任何关联,但似乎是准确的。2的补码不会按升序对浮点数进行排序,因为它将负数按相反顺序排序。例如,作为二的补码,0xbf800000小于0xc0000000。作为普通编码的浮点,它们分别是–1和–2,并且–1当然不小于–2。你也可以检查一下,这与我无关,但似乎是准确的。2的补码不会按升序排序浮点数,因为它按相反的顺序排序负数。例如,作为二的补码,0xbf800000小于0xc0000000。作为带有公共编码的浮点,它们分别是–1和–2,–1当然不小于–2。