zoukankan      html  css  js  c++  java
  • 4字节单精度浮点型十六进制转浮点型十进制数据源码

    //------------------------------------------------------------------------------------------------------------------------------------------//

    windows ----GPS

    #include <stdio.h>
    //联合fnum存储数据
    union fnum
    {
    int m;
    float f;
    };
    int main(int argc, char *argv[])
    {
    union fnum num;
    num.m=0x40a80000;//十六进制数赋值给整数
    printf("十六进制输出int:0x%x ",num.m);//输出0x40a80000
    printf("十进制输出float:%f ",num.f);//输出5.250000
    return 0;
    }

    //-------------------------------------------------------------------------------------------------------------------------------------//

    #include <stdio.h>


    int main()

    {

        long int n;  //Tc3.0ºÃÏñÊÇ16λ±àÒëÆ÷

        printf("ÊäÈë8λ16œøÖÆÊý£º");

        scanf("%x",&n);

        printf("%f ",*((float*)&n));

        return 0;

        

    }

    //--------------------------------------------------------------------------------------------------------------------------------------------//

    2)

    #include<stdio.h>

    int main()

    {

        long int n;  //Tc3.0ºÃÏñÊÇ16λ±àÒëÆ÷

        printf("ÊäÈë8λ16œøÖÆÊý£º");

        scanf("%x",&n);

        printf("%f ",*((float*)&n));

        return 0;

        

    }

    //---------------------------------------------------------------------------------------------------------------------------------------------------//

    3)

        #include <stdio.h>

    int main(void)

    {

     

        float a=0.0f;

        unsigned char * b = (unsigned char*)&a;

        char c[4] = {0x4B,0xDA,0x74,0x0C};

        int i = 0;

        printf("b1:%d ",b);

        for(i = 0; i<4; i++){

            b[i] = (unsigned char)c[i];

        }

        printf("b2:%d ",*b);

        printf("œá¹ûΪ£º ");

        printf("%f ", a);

        //printf("a:%d ",a);

    }

    //--------------------------------------------------------------------------------------------------------------------------------------------------//

    4)

    #include <stdio.h>



    float Hex_To_Decimal(unsigned char *Byte,int num)//Ê®ÁùœøÖƵœž¡µãÊý



    {

    int i;



    char cByte[4];//·œ·šÒ»



     for (i=0;i<num;i++)



     {



    cByte[i] = Byte[i];



     }







     float pfValue=*(float*)&cByte;



    return pfValue;



    return *((float*)Byte);//·œ·š¶þ



    }



    long FloatTohex(float HEX)//ž¡µãÊýµœÊ®ÁùœøÖÆת»»1



    {



    return *( long *)&HEX;



    }



    void FloatToByte(float floatNum,unsigned char* byteArry)////ž¡µãÊýµœÊ®ÁùœøÖÆת»»2



    {

        int i;

    char* pchar=(char*)&floatNum;



    for(i=0;i<sizeof(float);i++)



    {



    *byteArry=*pchar;



    pchar++;



    byteArry++;



    }



    }



    void main()



    {



    unsigned char floatToHex[4];



    unsigned char hexbyte[4]={0x4b,0xda,0x74,0x0c};//Ž«ÊäÊýŸÝΪ3d cc cc cd



    float Hdecimal=0.0;



    float flh=0.4;



    // int num=sizeof(hexbyte);



    // printf("num= %d ",num);



    Hdecimal=Hex_To_Decimal(hexbyte,sizeof(hexbyte));//Ê®ÁùœøÖÆת»»Îªž¡µãÊý



    printf(" ž¡µãÊýΪ£º %f ",Hdecimal);



    long hX=FloatTohex(Hdecimal);//ž¡µãÊýת»»ÎªÊ®ÁùœøÖÆÒ»



    printf(" ÕýÐòÊ®ÁùœøÖÆÖµ£º %f=%X ",Hdecimal,hX);//ÕýÐòÏÔÊŸ



    FloatToByte(Hdecimal,floatToHex);//ž¡µãÊýתΪʮÁùœøÖƶþ



    printf(" µ¹ÐòÊ®ÁùœøÖÆ£º %f=%x %x %x %x ",Hdecimal,floatToHex[0],floatToHex[1],floatToHex[2],floatToHex[3] );//µ¹ÐòÏÔÊŸ



    FloatToByte(flh,floatToHex);//ž¡µãÊýתΪʮÁùœøÖƶþ



    printf(" µ¹ÐòÊ®ÁùœøÖÆ£º %f=%x %x %x %x ",flh,floatToHex[0],floatToHex[1],floatToHex[2],floatToHex[3] );//µÍλÔÚÇ°



    FloatToByte(flh,floatToHex);//ž¡µãÊýתΪʮÁùœøÖƶþ



    printf(" ÕýÐòÊ®ÁùœøÖÆ£º %f=%x %x %x %x ",flh,floatToHex[3],floatToHex[2],floatToHex[1],floatToHex[0] );//žßλÔÚÇ°



    }

  • 相关阅读:
    环境变量学习(二)Mac 可设置环境变量的位置
    环境变量学习(一)简介、查看
    shell学习(二)安装shell环境
    npm学习(十八)npm scripts 使用指南
    nodemon学习(二)实战
    nodemon学习(一)简介、安装、配置、使用
    Error: listen EADDRINUSE 127.0.0.1:8888错误解决
    树莓派创建wifi热点
    JavaScript中的数据类型转换
    Packstack 搭建 OpenStack 报 MariaDB 错误的处理
  • 原文地址:https://www.cnblogs.com/dpf-learn/p/7028142.html
Copyright © 2011-2022 走看看