C中,怎样把一个变量分位输出效率高?

[复制链接]
1897|3
 楼主| wuljia 发表于 2013-11-28 12:53 | 显示全部楼层 |阅读模式
ADC, dc, AD
比如:
            Dazi[0]=ADCre/1000;
            Dazi[1]=ADCre%1000/100;
            Dazi[2]=ADCre%100/10;
            Dazi[3]=ADCre%10;
这样子,效率是不是太低了?有好的方法吗?
nqyijian 发表于 2013-11-28 13:02 | 显示全部楼层
有硬件乘法器这样就没问题。
没有的话,做减法和判断吧
ayb_ice 发表于 2013-11-28 13:43 | 显示全部楼层
比如:
有个数是6123
分离千位

        U8 k;
        U16 t = 6123;

        k = 0;
        if(t >= 8000){
                t -= 8000;
                k += 8;
        }else{
                if(t >= 4000){
                        t -= 4000;
                        k += 4;
                }
                if(t >= 2000){
                        t -= 2000;
                        k += 2;
                }
        }

        if(t >= 1000){
                t -= 1000;
                k += 1;
        }

只能从最高位开始分离

51的话可以用移位,BCD加法,很快的
zxc729 发表于 2013-11-29 09:39 | 显示全部楼层
可以用结构体加共有体的形式,我感觉这样效率高些
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:PDFFSPPTFSDOCFS

118

主题

265

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部