博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4字节单精度浮点型十六进制转浮点型十进制数据源码
阅读量:5289 次
发布时间:2019-06-14

本文共 3127 字,大约阅读时间需要 10 分钟。

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

windows ----GPS

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

 

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

2)

#include<stdio.h>

int main()
{
    long int n;  //Tc3.0ºÃÏñÊÇ16λ±àÒëÆ÷
    printf("ÊäÈë8λ16œøÖÆÊý£º");
    scanf("%x",&n);
    printf("%f\n",*((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\n",b);
    for(i = 0; i<4; i++){
        b[i] = (unsigned char)c[i];
    }
    printf("b2:%d\n",*b);
    printf("œá¹ûΪ£º\n");
    printf("%f\n", a);
    //printf("a:%d\n",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\n",num);
Hdecimal=Hex_To_Decimal(hexbyte,sizeof(hexbyte));//Ê®ÁùœøÖÆת»»Îªž¡µãÊý
printf("\n ž¡µãÊýΪ£º\n %f\n",Hdecimal);
long hX=FloatTohex(Hdecimal);//ž¡µãÊýת»»ÎªÊ®ÁùœøÖÆÒ»
printf("\nÕýÐòÊ®ÁùœøÖÆÖµ£º\n %f=%X \n",Hdecimal,hX);//ÕýÐòÏÔÊŸ
FloatToByte(Hdecimal,floatToHex);//ž¡µãÊýתΪʮÁùœøÖƶþ
printf("\nµ¹ÐòÊ®ÁùœøÖÆ£º\n%f=%x %x %x %x\n",Hdecimal,floatToHex[0],floatToHex[1],floatToHex[2],floatToHex[3] );//µ¹ÐòÏÔÊŸ
FloatToByte(flh,floatToHex);//ž¡µãÊýתΪʮÁùœøÖƶþ
printf("\nµ¹ÐòÊ®ÁùœøÖÆ£º\n%f=%x %x %x %x\n",flh,floatToHex[0],floatToHex[1],floatToHex[2],floatToHex[3] );//µÍλÔÚÇ°
FloatToByte(flh,floatToHex);//ž¡µãÊýתΪʮÁùœøÖƶþ
printf("\nÕýÐòÊ®ÁùœøÖÆ£º\n%f=%x %x %x %x\n",flh,floatToHex[3],floatToHex[2],floatToHex[1],floatToHex[0] );//žßλÔÚÇ°
}

转载于:https://www.cnblogs.com/dpf-learn/p/7028142.html

你可能感兴趣的文章
[Java]Jersey Spring Integration Demo
查看>>
left & double spindle difference
查看>>
apue3.e (基于maxos 10.9)
查看>>
网站测试之一压力测试
查看>>
vue脚手架 && 实例
查看>>
npm全局安装和局部文件安装区别
查看>>
Java虚拟机基础
查看>>
Java反射机制demo(六)—获得并操作一个类的属性
查看>>
[译]C语言实现一个简易的Hash table(6)
查看>>
gogs搭建属于自己的git网站
查看>>
查看oracle数据库的连接数以及用户
查看>>
简单几行js实现tab选项切换效果
查看>>
关于更改滚动条样式
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
[转帖] Oracle 关闭自动收集统计信息
查看>>
TCP/IP协议
查看>>
三.野指针和free
查看>>
VIO的Bundle Adjustment推导
查看>>
POJ 1182 食物链(带权并查集)
查看>>