新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機求平方根的高效快速算法

        單片機求平方根的高效快速算法

        作者: 時間:2014-01-18 來源:網絡 收藏

        當我們使用8位MCU編程,用到算法時,如果調用自帶的子程序,那么生產的代碼較多,效率低下。因為軟件自帶算法是用浮點數類型來計算的,現實中我們往往只需要返回整型數據,采用以下代碼將會大大提高計算效率。

        static unsigned long sqrt(unsigned long x)
        {
        register unsigned long xr; // result register
        register unsigned long q2; // scan-bit register
        register unsigned char f; // flag (one bit)

        xr = 0; // clear result
        q2 = 0x40000000L; // higest possible result bit
        do
        {
        if((xr + q2) = x)
        {
        x -= xr + q2;
        f = 1; // set flag
        }
        else{
        f = 0; // clear flag
        }
        xr >>= 1;
        if(f){
        xr += q2; // test flag
        }
        } while(q2 >>= 2); // shift twice
        if(xr x){
        return xr +1; // add for rounding
        }
        else{
        return xr;
        }
        }

        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 抚松县| 耒阳市| 中西区| 昌黎县| 衡山县| 南皮县| 崇仁县| 沭阳县| 泰安市| 福州市| 铁岭市| 托克逊县| 拜城县| 苍梧县| 阿鲁科尔沁旗| 临沭县| 定襄县| 元谋县| 宁城县| 安岳县| 盖州市| 封丘县| 漾濞| 灵丘县| 尉氏县| 水城县| 师宗县| 农安县| 宁都县| 广水市| 江孜县| 安岳县| 广宁县| 凤冈县| 肇庆市| 新乡县| 中阳县| 文化| 岑溪市| 封丘县| 灵寿县|