关于取数的问题,请高人指点
时间:10-02
整理:3721RD
点击:
从一个4位整数中取出各位上的数,以下两段代码,运行的结果是一样的,第一段编译后体积比第二段小一点,但是不知道执行效率哪一段比较高一点?本人初学单片机,对C语言更是一知半解,请高人给指点一下,在此谢过,不胜感激。
第一段用for循环的方式:
第二段用直接取值的方式:
第一段用for循环的方式:
- uchar df[4];
- char i;
- uint j;
- j=temp;
- if(temp<0)j=-temp; //如果是负数转换成正数
- for(i=3;i>=0;i--)
- {
- df[i]=j%10;
- j/=10;
- }
第二段用直接取值的方式:
- uchar df[4];
- uint j;
- j=temp;
- if(temp<0)j=-temp; //如果是负数转换成正数
- df[0]=j/1000; //取千位
- df[1]=j%1000/100; //取百位
- df[2]=j%100/10; //取十位
- df[3]=j%10; //取个位
第一段占用的是运行内存存储量小,第二段占的就是存储量,所以第二个体积大一点,RAM够大的话第一个效率高
顶