取整和取余数大家有什么好的方法?

2020-01-01 17:44发布

本帖最后由 xurenhui 于 2017-1-4 16:21 编辑

1.芯片是STM8S003K3
2.编译软件是IAR 6.3.16版本
3.如:Timer_Suffer[1] = Get_value/1000;//取整数 ---------------该方法大概占用12个字节,采用高级优化
         Timer_Suffer[2] = Get_value%100%10;//------------------该方法占用16个字节,采用高级优化
4.有什么简单点算法,使占用flash小一点,运算速度慢一点都没有关系,感觉自己种方法太笨拙了。
5.现在发现空间不够,所以希望大家给点建议,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
37条回答
ljy99731
1楼-- · 2020-01-02 15:23
6楼的意思是把这两项计算用函数替代,这样每次调用会省掉一些。不过我觉得楼主优化的方向有问题,你要省空间要优先考虑优化最长的那个分支,这两个函数你费n多脑细胞也不过十几二十个字节。曾经用nec的78f9234写锁相环的代码做到后来flash不够用最后把计算PLL填充的部分改用汇编立刻省出几百字节空间
xurenhui
2楼-- · 2020-01-02 17:44
yangsen 发表于 2017-1-4 17:09
6楼的意思是把这两项计算用函数替代,这样每次调用会省掉一些。不过我觉得楼主优化的方向有问题,你要省空 ...

谢谢兄台,其实我这个还有几个类似的函数没有写出来,
按照你这样的话,我的写法也算过得去了,没有必要优化,
但是空间确实有点紧张哦
yangsen
3楼-- · 2020-01-02 19:48
 精彩回答 2  元偷偷看……
xurenhui
4楼-- · 2020-01-03 00:14
一般情况flash不会这么紧张吧
落叶知秋
5楼-- · 2020-01-03 00:42
落叶知秋 发表于 2017-1-4 17:45
这个为啥要取模两次?

楼主的意思大概是Get_value%100/10吧
int
6楼-- · 2020-01-03 03:21
nnmnnm 发表于 2017-1-4 18:49
楼主的意思大概是Get_value%100/10吧

应该不是,取模和取整是不一样的

一周热门 更多>