Hopes

          Start Here..

           

          用移位實現乘除法運算

          用移位實現乘除法運算
               a=a*4;
               b=b/4;


          可以改為:
               a=a<<2;
               b=b>>2;


          說明:

          除2 = 右移1位               乘2 = 左移1位
          除4 = 右移2位               乘4 = 左移2位
          除8 = 右移3位             乘8 = 左移3位
          ...                                       ...


          通常如果需要乘以或除以2的n次方,都可以用移位的方法代替。

          大部分的C編譯器,用移位的方法得到代碼比調用乘除法子程序生成的代碼效率高。

          實際上,只要是乘以或除以一個整數,均可以用移位的方法得到結果,如:


          a=a*9
          分析a*9可以拆分成a*(8+1)即a*8+a*1, 因此可以改為:     a=(a<<3)+a

          a=a*7
          分析a*7可以拆分成a*(8-1)即a*8-a*1, 因此可以改為:     a=(a<<3)-a

          關于除法讀者可以類推, 此略

          posted on 2013-11-11 19:06 ** 閱讀(637) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 迭部县| 高阳县| 布尔津县| 二连浩特市| 金秀| 边坝县| 贡嘎县| 中阳县| 邓州市| 晋州市| 大埔区| 乡宁县| 双鸭山市| 周口市| 华坪县| 禄丰县| 秦安县| 成安县| 乌拉特前旗| 修水县| 大新县| 禄丰县| 筠连县| 广汉市| 梓潼县| 蚌埠市| 磐石市| 清苑县| 雷州市| 福建省| 出国| 弥渡县| 鄂托克旗| 郸城县| 澄城县| 江城| 天台县| 福泉市| 津南区| 青岛市| 湘乡市|