单片机C51十六进制浮点型转换为十进制,怎么转

如题所述

用一个联合体就可以解决你的问题

union temp{
float x;
char table[4];
};
比如上位机发给你一个4字节的浮点数给你,存放在recbuf[4]中
那么你只要执行了
temp.table[0]=recbuf[0];
temp.table[1]=recbuf[1];

temp.table[2]=recbuf[2];

temp.table[3]=recbuf[3];
后,temp.x就是浮点数的结果
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-09
什么意思
第2个回答  2012-11-17
没事怎么会用到这个呢

单片机C51十六进制浮点型转换为十进制,怎么转
用一个联合体就可以解决你的问题 union temp{ float x;char table[4];};比如上位机发给你一个4字节的浮点数给你,存放在recbuf[4]中 那么你只要执行了 temp.table[0]=recbuf[0];temp.table[1]=recbuf[1];temp.table[2]=recbuf[2];temp.table[3]=recbuf[3];后,temp.x就是浮点数...

C51单片机浮点数运算
如果两个有一个是整形的,那么,把整型强制转换成浮点型:float f_Div = (float)a\/(float)b;注意,那个f_Div变量必须是float型,才能有小数产生 第二,你要进行显示,肯定要把各个位都取出来,这里面肯定有一个取模运算,就是"%",对于浮点型,不运行取模运算的,所以,你必须把浮点型转换成整型,但是,...

51单片机c语言如何把浮点型转为字符串 ?
使用stdio.h中的sprintf函数转化即可:include <stdio.h>float a = 1.234;char str[10];sprintf(str, "%f", a);

单片机c语言浮点十进制进制转换十六进制
浮点型十进制数转换成十六进制数。。。这个,不用任何转换。无论任何进制的数字,在计算机中,都是用二进制存放。二进制,也就是16进制。

51单片机怎么实现浮点运算
要先按装浮点库C51FPS.LIB,按装路径为:将 C51FPS.LIB 文件复制到 C:\\Keil\\C51\\LIB\\ 文件夹下面。而后在程序中用浮点型变量float或double进行运算即可。

51单片机C语言:二进制与十进制能直接运算吗?
对单片机来说,不管任何进制的数字,在单片机内部都是二进制表示的。所以能直接运算。但是单片机计算浮点数是非常耗时的,因此要优化算法,比如你的乘以0.0625等价于除以16(1÷16=0.0625),而除以16等价于算数右移4位,这样的运算比直接乘以0.0625快几十倍。

单片机如何把浮点型转换为char型
float a;int c;char b;c = (a * (float)(2^16));b = c >> 16;先用浮点乘上一个2的倍数(假设16倍),把结果转成整型,然后把这个整形结果向右移16位即可。

求51单片机浮点运算子程序 C51编程
否则,你要自己编写浮点子程序的话,最好也不应该用C语言编,而应该用汇编来编,最后连接时再和你的C语言的主程序连接在一起。因为,如过你的浮点子程序都是直接用C语言写的,那效率就太低了。在51单片机这样的环境下,恐怕大多数的应用,都会嫌它太笨重,不合要求。你说你过去用汇编语言“直接...

c51支持哪些数据类型?混合运算时候,类型转换顺序?
unsigned long)7. 浮点数类型(float)8. 双精度浮点数类型(double)此外,针对单片机,C51还提供了:9. 位类型(bit)10. 符号位类型(sbit)在混合运算时,不同数据类型的编译器在类型转换的顺序上可能会有所不同。为了确保运算结果的正确性,建议在运算前将数据预先转换为相同类型。

51单片机中如何确定ad芯片输出数据的小数点的位置
例如,12位AD的输入范围是0--4.095V,那么当输入电压0.256V时,AD会输出000100000000(十进制256),你把小数点点在2的左边,显示出来就是0.256V;你把小数点点在6的右边,显示出来就是0256mV;你把小数点点在6的左边,显示出来就是025.6(单位是10mV)等等。当然,通常没这么简单,要显示的数...

相似回答