新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 高效的C編程之:除法運算

        高效的C編程之:除法運算

        作者: 時間:2013-09-30 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257023.htm

        14.2.3

        為了避免在程序中使用,可以將一些典型的進行轉換。下面的例子提供一種轉換方法。

        uintcounter1(uintcount)

        {return(++count%60);

        }

        轉換成,

        uintcounter2(uintcount)

        {if(++count>=60)

        count=0;

        return(count);

        }

        下面是兩個功能函數編譯后的匯編代碼。

        counter1

        STMDBsp!,{lr}

        ADDa2,a1,#1

        MOVa1,#3c

        BL__rt_udiv

        MOVa1,a2

        LDMIAsp!,{pc}

        counter2

        ADDa1,a1,#1

        CMPa1,#3c

        MOVCSa1,#0

        MOVpc,lr

        上面的例子清晰的顯示了使用if語句代替后,代碼的執行效率有很大提高。

        14.2.4除數是常數的除法

        因為除法和模運算執行起來比較慢,所以應該盡可能地避免使用。但是除數是常數的和用同一個除數的重復除法,執行效率會比較高。在的除法庫中,存在除數為10的除法運算庫,其中包括有符號除法和無符號除法。如果除數是10以外的其他常數,用戶可以編寫自己的功能函數。的開發工具集中,提供了關于除數是常數的示例程序和算法分析,以供用戶編寫自己的代碼時參考。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉门市| 邵阳市| 衡南县| 博兴县| 武义县| 永靖县| 简阳市| 绥芬河市| 边坝县| 五指山市| 金寨县| 纳雍县| 读书| 外汇| 新平| 柏乡县| 鄂伦春自治旗| 辽阳市| 晋城| 彩票| 河北省| 新竹县| 六枝特区| 白朗县| 沾益县| 登封市| 泰兴市| 陵水| 临沧市| 东阳市| 叶城县| 广宁县| 乌兰察布市| 湟源县| 卢湾区| 合江县| 阿图什市| 嘉鱼县| 廉江市| 毕节市| 福贡县|