论坛风格切换切换到宽版
  • 5923阅读
  • 10回复

单片机如何计算小数 [复制链接]

上一主题 下一主题
离线ba2ba
 
发帖
961
只看楼主 倒序阅读 0楼 发表于: 2014-09-23
单片机计算整数比较容易,计算小数怎么编程序才能实现。
比如 2*0.0196=0.0392  用单片机如何运算出来?  
地址:黑龙江省伊春市伊美区美溪镇新兴小区12号楼一单元201室
姓名:陈铁石/BA2BA
邮编:153021
电话:18804585572
QQ:464826156
离线okstar
发帖
4729
只看该作者 1楼 发表于: 2014-09-23
很难,单片机无法进行浮点运算,网上有浮点库,用软件模拟进行运算,非常慢,并且浮库都很大,加入后程序空间很容易爆掉。如果是有限的特定算法,可以用加减法来逼近

内容来自Android手机客户端

离线BG5MVE
发帖
480
只看该作者 2楼 发表于: 2014-09-24
小数点往右移动几位,可否?

内容来自Android手机客户端

离线ba2ba
发帖
961
只看该作者 3楼 发表于: 2014-09-25
弄巧成拙了,理解上有问题,应该理解成毫伏或微伏,然后乘上系数即可。
地址:黑龙江省伊春市伊美区美溪镇新兴小区12号楼一单元201室
姓名:陈铁石/BA2BA
邮编:153021
电话:18804585572
QQ:464826156
离线bg4npj
发帖
411
只看该作者 4楼 发表于: 2014-09-30
可以将小数变成整数,比如2*0.0196*10000=3920. 这样先完成计算。至于怎么显示。那不就简单了吗?
离线BG7FW
发帖
487
只看该作者 5楼 发表于: 2014-11-20
用scalling,先确定乘数,被乘数,积的范围,
根据这个范围和定义变量的字节数设置各自的放大系数,
一般用2^ , 如果用10^计算会比较慢.

BD7FW     BD7FW/4
bg7fw@163.com;
oicq:34399287
QTH:山东.青岛
设备: IC-756  IC-7000  mcHF
天线: 三波段带陷波器的倒V
离线ahhui
发帖
7419
只看该作者 6楼 发表于: 2014-11-20
用C语言编程的单片机可以直接支持浮点运算,就是楼上说的速度比较慢。如果计算量不大的话也没什么问题。
DE BA6IT AB9UX
离线BD4WE
发帖
284
只看该作者 7楼 发表于: 2014-12-07
以前做DDS还用查表,后来直接浮点在C语言里用,苦活脏活让编译器、单片机干去吧,其实机器算起来很快的,关键是你的数据类型要定义好了。
DIY和单片机爱好者,
ARM和嵌入式开发发烧友
BD4WE  唐明
E-mail:tangmix@163.com  
TEL:13003450507
QQ:99031436
BD4WE的无线电DIY小铺:
http://item.taobao.com/item.htm?_u=juksj09943&id=42886157159
离线王一颖
只看该作者 8楼 发表于: 2015-10-12
数据类型用float即可。
离线ke8bii
发帖
58
只看该作者 9楼 发表于: 2016-03-22
c语言可以用二进制。用二进制可以表达小数。需要细节回复我。
一个长期生活在国外没有机会考国内呼号的火腿。
离线BD6IDC
发帖
693
只看该作者 10楼 发表于: 2017-03-02
先转换成整数计算,最后显示的时候根据倍数关系加上小数点。

虽然可以做浮点运算,不过速度和空间上都要损失。
爱好无线电和C++/.NET/linux
永远忠诚于党的无线电事业
个人信息:http://www.hellocq.net/qrz/php/search.php?callsign=bg6idc
ICQ:5984228
MSN:coldice@jztele.com