C语言 int 转单精度浮点,单精度浮点数与十六进制转换 C语言程序 单片机也可用...
單精度浮點數與十六進制轉換 C語言程序 單片機也可用
#include
float Hex_To_Decimal(unsigned char *Byte,int num)//十六進制到浮點數
{
// char cByte[4];//方法一
// for (int i=0;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
{
char* pchar=(char*)&floatNum;
for(int i=0;i
{
*byteArry=*pchar;
pchar++;
byteArry++;
}
}
void main()
{
unsigned char floatToHex[4];
unsigned char hexbyte[4]={0xcd,0xCC,0xCC,0x3D};//傳輸數據為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,floatT
oHex);//浮點數轉為十六進制二
printf("\n正序十六進制:\n%f=%x %x %x %x\n",flh,floatToHex[3],floatToHex[2],floatToHex[1],floatToHex[0] );//高位在前
}
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的C语言 int 转单精度浮点,单精度浮点数与十六进制转换 C语言程序 单片机也可用...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马哥linux2020博客,马哥linu
- 下一篇: C语言标量变向量的函数,GLSL 详解(