|
本帖最后由 cyy998 于 2016-7-8 15:45 編輯
從一個4位整數(shù)中取出各位上的數(shù),以下兩段代碼,運(yùn)行的結(jié)果是一樣的,第一段編譯后體積比第二段小一點(diǎn),但是不知道執(zhí)行效率哪一段比較高一點(diǎn)?本人初學(xué)單片機(jī),對C語言更是一知半解,請高人給指點(diǎn)一下,在此謝過,不勝感激。
第一段用for循環(huán)的方式:
- uchar df[4];
- char i;
- uint j;
- j=temp;
- if(temp<0)j=-temp; //如果是負(fù)數(shù)轉(zhuǎn)換成正數(shù)
- for(i=3;i>=0;i--)
- {
- df[i]=j%10;
- j/=10;
- }
復(fù)制代碼
第二段用直接取值的方式:
- uchar df[4];
- uint j;
- j=temp;
- if(temp<0)j=-temp; //如果是負(fù)數(shù)轉(zhuǎn)換成正數(shù)
- df[0]=j/1000; //取千位
- df[1]=j%1000/100; //取百位
- df[2]=j%100/10; //取十位
- df[3]=j%10; //取個位
復(fù)制代碼
|
|