新聞中心

        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單片機教程


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


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


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




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南阳市| 罗平县| 康马县| 西乌| 承德市| 舒兰市| 广东省| 吉安市| 元谋县| 镇江市| 广昌县| 郧西县| 贞丰县| 保山市| 小金县| 凤凰县| 通河县| 根河市| 昌黎县| 博客| 台湾省| 泸溪县| 嫩江县| 雷山县| 铜鼓县| 伊宁市| 鲁山县| 尖扎县| 舒城县| 稻城县| 包头市| 大竹县| 涿州市| 砀山县| 东平县| 达孜县| 兰坪| 藁城市| 崇文区| 乌鲁木齐县| 全南县|