关于取数的问题,请高人指点

2019-07-15 13:29发布

从一个4位整数中取出各位上的数,以下两段代码,运行的结果是一样的,第一段编译后体积比第二段小一点,但是不知道执行效率哪一段比较高一点?本人初学单片机,对C语言更是一知半解,请高人给指点一下,在此谢过,不胜感激。
第一段用for循环的方式:
  1. uchar df[4];
  2. char i;
  3. uint j;
  4. j=temp;
  5. if(temp<0)j=-temp;                //如果是负数转换成正数
  6. for(i=3;i>=0;i--)
  7.         {
  8.                 df[i]=j%10;
  9.                 j/=10;
  10.         }
复制代码

第二段用直接取值的方式:
  1. uchar df[4];
  2. uint j;
  3. j=temp;
  4. if(temp<0)j=-temp;                //如果是负数转换成正数
  5. df[0]=j/1000;                                        //取千位
  6. df[1]=j%1000/100;                              //取百位
  7. df[2]=j%100/10;                                  //取十位
  8. df[3]=j%10;                                         //取个位
复制代码

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
fan497172861
1楼-- · 2019-07-15 14:19
第一段占用的是运行内存存储量小,第二段占的就是存储量,所以第二个体积大一点,RAM够大的话第一个效率高
756594158
2楼-- · 2019-07-15 16:04
 精彩回答 2  元偷偷看……

一周热门 更多>