51要计数浮点和一个16位数的乘法,怎么破..........

2020-01-23 14:43发布

8位的51,要计算一个16位整数和一个比较小的小数(0.03XXXXXXX)的乘法,
我是直接乘呢还是有什么方法可以提供一下效率啊,小数太小,放大太多怕溢出啊
乡亲们,求支招
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
苦行僧
1楼-- · 2020-01-24 07:57
sdxjgby 发表于 2014-4-22 22:02
上面说错了,应该是周航慈老师的,现在玩工控多搞混了。

请问一下是什么书啊
我现在的做法就是将小数的各个位取出
然后用各个位去乘那个整数,再叠加
最后能得到我要的结果,不知道这样做有没有提高效率
好像这样改之后代码量少了一点
alfred1
2楼-- · 2020-01-24 08:26
1.查表法
2. 移位法
3.定点法
zhugean
3楼-- · 2020-01-24 14:18
给你一个绝好的办法,也是汇编里常用的做法,先用0.3xxx * 65536得到A,然后用A乘16位整数,得到4字节数,最高两个字节就是结果
elec2000
4楼-- · 2020-01-24 18:41
 精彩回答 2  元偷偷看……
苦行僧
5楼-- · 2020-01-24 21:40
zhugean 发表于 2014-4-23 08:38
给你一个绝好的办法,也是汇编里常用的做法,先用0.3xxx * 65536得到A,然后用A乘16位整数,得到4字节数, ...

也就是先放大,取高两个字节就是右移16位,相当于除65536
恩,我现在好像也是这么做的,不过我是放大1000000倍,把小数的各个位取出来了再做乘法,不知道这样效率是有没有比直接两个整数相乘高一点
czhcc12
6楼-- · 2020-01-24 23:36
转成浮点计算呢,这个不错的

一周热门 更多>