一个数组里存放的二进制数据,00 80 60 43,怎么样把它转换为十进制浮点表示,转换后的数据应该是224.50,怎么写代码呀?

解决方案 »

  1.   

    给个C代码你参考下
    //二进制转换为十进制
    #include <stdio.h>
      #include <math.h>
      main()
      {
      int i,k,sum=0,a[16];
      printf("please input n=");
      for (i=0;i<16;i++)
    {scanf("%d",&a[i]);
    }
      for (i=15;i>=0;i--)
    {
    k=a[i]*pow(2,15-i);
    sum=sum+k;
    }
      printf("%d",sum);
    getch();  }
        
      

  2.   

    你转 总得有个标准吧,看你的这个结果是按照IEEE754的标准 转换的你上面的数字00 80 60 43 应该是底层数据传输传过来的,是按照 先低字符 然后高字符 ,低字节 高字节排序的所以 正常的表示 应该是 0x43608000这个 32位的16进制(IEEE754单精度浮点是32位 双精度的是62位)然后 调用Float.intBitsToFloat(0x043608000)=224.5这个方法是 float  根据 IEEE 754 转换为十进制的还有个方法Float.floatToRawIntBits是转成对应 的IEEE754的形式也就是43608000