📄 float.c
字号:
float float_convert_float(unsigned char *p);
//待输入的数
union
{
float f;
unsigned char c[4];
unsigned long int li;
}floatxx;
//输出的数据
union
{
float f;
unsigned char c[4];
unsigned long int li;
}floatyy;
//接受到的数组
/*unsigned char in_array[4] = {0x40,0x00,0x00,0xee};
unsigned long in_li;//接收到数组的排列的长整数*/
/*void main(void)
{
unsigned long li_out;
floatxx.c[0] = in_array[0];
floatxx.c[1] = in_array[1];
floatxx.c[2] = in_array[2];
floatxx.c[3] = in_array[3];
in_li = floatxx.li;
li_out = (unsigned long)float_convert_float(in_li);
}*/
//浮点数转化为浮点数,返回浮点数
float float_convert_float(unsigned char *p)
{
unsigned char c;
floatxx.c[0] = *p;
floatxx.c[1] = *(p+1);
floatxx.c[2] = *(p+2);
floatxx.c[3] = *(p+3);
if (floatxx.li == 0) return (0);
c = floatxx.c[3] - 0xea;
c = c + 127;
floatyy.c[3] = floatxx.c[2];
floatyy.c[2] = floatxx.c[1];
floatyy.c[1] = floatxx.c[0];
floatyy.li = floatyy.li << 1;
floatyy.c[1] = floatyy.c[1] & 0x7f;
if ( (c&0x1) == 1 ) floatyy.c[1] = floatyy.c[1] | 0x80;
floatyy.c[0] = c >> 1;
floatyy.c[0] &= 0x7f;
if((floatxx.c[0]&0x80) == 0x80)
{
floatyy.c[0] |= 0x80;
}
return( floatyy.f );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -