完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
对以下程序进行优化:
table[0] = (u8)(Count/1000) + '0'; table[1] = (u8)(Count%1000/100) + '0'; table[2] = (u8)(Count%100/10) + '0'; table[3] = (u8)(Count%10)+ '0'; 注:table 为无符号字符型数组,count 为无符号型型(16位) 目标平台为8位单片机 我这么写执行效率太低,因为我用到了16位数的除法和取余运算。有什么好办法可以快速解决吗? |
|
相关推荐
2个回答
|
|
|
|
|
|
只是0-9999的话,16位运算是无法避免的,只能尽量减少.
先除法得到高2位,再16位减法得到低两位. 剩下的就是8位操作了. 注意,加法和减法最快,乘法次之,除法最慢. |
|
|
|
只有小组成员才能发言,加入小组>>
3262 浏览 9 评论
2943 浏览 16 评论
3442 浏览 1 评论
8952 浏览 16 评论
4036 浏览 18 评论
1078浏览 3评论
558浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
551浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2286浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1848浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 07:53 , Processed in 1.007366 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号