微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于取数的问题,请高人指点

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

时间:10-02 整理:3721RD 点击:
从一个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;                                         //取个位

复制代码


第一段占用的是运行内存存储量小,第二段占的就是存储量,所以第二个体积大一点,RAM够大的话第一个效率高

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top