❶ 单片机能做浮点运算吗
可以啊,但不同品牌、不同型号单片机的运算能力不同,同样的运算代码,会出现不同的运算速度。
❷ 单片机的浮点数存储
一般单片机的浮点数是32位表示,也就是4字节,在24存储器中,你可以任意存储,只要写入顺序和读出顺序一致就行。一般将一个数据的4个字节连续存储。读出是连续读出,然后存入表示浮点数的内存空间就行了,只要知道浮点数的首字节地址就可以了
❸ 单片机里浮点数是怎么存放的
可以这么说:任何存储器,无论是pc机,单片机,甚至内存卡的基本存储模块都是一样
的结构(当然是对于ram而言),都是一个存储单元对应地址线的一种组合相应存储一个字节,物理结构是里面的八个触发器,每个触发器对应一个字节。至于浮点数和整型数理论上没什么区别了把,就在多一个字节存放小数点吧。
❹ 单片机浮点乘法和浮点除法一样吗
不一样。单片机浮点乘法和浮点除法是不一样的,一般尽量用乘法或其它方法代替除法。浮点(floating-point)是一种数的表示方法。一个数被表示为尾数部分和指数部分,其值为尾数乘以基数的指数次幂,基数(通常为2)隐含在表示格式中。
❺ 单片机浮点数运算问题。程序如下
.采用定点方法如一个脉冲代表0.003米,将其扩大1000倍为整数3,然后显示结果
unsigneg long int depth=pulse*3 最后显示时把小数点定在倒数第4位后面即可
2.
用C语言编程时,可用float型,后将结果转化成字符串,然后用字符串显示函数
如 sprintf(s,"%6.4f",a);, a是浮点数变量S[]是保存字符串转换结果的数组 长度根据需要自己定中间引号里是输出格式控制符,类似于print
方法1我一直采用,第2种方法是我最近才学会的
❻ 在玩单片机 的时候总是会说什么定点运算和浮点运算,始终不明白,这个浮点运算是什么,
定点运算实际就是整数(定点小数,可以视为整数)运算,浮点运算实际就是实数运算。
假如处理器是32位的,也就是说32位都用来表示整数的话,那么对于无符号整数就是 0~2^32-1,对于有符号整数就是 -2^31~2^31-1。如果是实数的话,机器有两种办法来表示,一种是定点,即小数点位置是固定的;另一种就是浮点,即小数点位置不固定,计算方法也比较麻烦,通常会比整数运算代价大很多。
因为计算机只能存储整数,所以实数都是“约等于”出来的,浮点运算是很慢的而且会存在精度问题(也即误差)。
基本所有处理器都支持定点运算,但不是所有的都支持浮点运算。
❼ 51单片机通常如何输入浮点数
单片机处理浮点数效率不高,一般是浮点数乘以10的n次方变成整数进行计算等处理,在输出的时候再次处理小数点。比如,你输入的是1234.567,1234保存到2个unsigned char型变量里面,567保存到2个unsigned char型变量里面,如果是有符号浮点数,可以把符号单独保存到一个unsigned char里面,计算的时候所有的数都乘以1000,输出的时候单独输出整数部分和小数部分。
❽ 51单片机怎么实现浮点运算
要先按装浮点库C51FPS.LIB,按装路径为:将 C51FPS.LIB 文件复制到 C:\Keil\C51\LIB\ 文件夹下面。
而后在程序中用浮点型变量float或double进行运算即可。
❾ 浮点数对单片机的速度影响很大么
一般来说,普通单片机都不具备硬件浮点数运算功能,也就是说单片机实际上是不直接支持浮点数的数据类型的数据的,浮点数主要通过编译器来软实现,浮点数精度和长度与编译器有关,一般有用32位(单精度)和64位数据(双精度)以科学计数法来表示一个浮点数,具体可参考浮点数表示方式。而普通单片机通常是8位或16位,要将这32位数据处理为一个浮点数,中间的运算过程可想而知有多大。举个列子吧,51单片机用keil编译器每增加一次浮点数运算代码增加约有几十到上百Byte。运行速度当然就慢下来了。
❿ 51单片机能不能计算浮点数,支不支持浮点运算有人说能,有人说不能。
不能直接硬件计算浮点(就是所谓的FPU),只能通过程序库(调用函数)模拟完成,非常耗时!