Hopes

          Start Here..

           

          用移位實(shí)現(xiàn)乘除法運(yùn)算

          用移位實(shí)現(xiàn)乘除法運(yùn)算
               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編譯器,用移位的方法得到代碼比調(diào)用乘除法子程序生成的代碼效率高。

          實(shí)際上,只要是乘以或除以一個(gè)整數(shù),均可以用移位的方法得到結(jié)果,如:


          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

          關(guān)于除法讀者可以類推, 此略

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊(cè)

          收藏夾

          C#學(xué)習(xí)

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 洪雅县| 巴马| 通海县| 太白县| 米林县| 慈利县| 恩施市| 吉隆县| 尖扎县| 武安市| 内丘县| 克山县| 昌邑市| 公安县| 项城市| 木兰县| 新巴尔虎左旗| 尼勒克县| 江安县| 莱阳市| 建湖县| 景泰县| 丹棱县| 哈尔滨市| 滨海县| 德钦县| 玉环县| 六枝特区| 龙岩市| 丰台区| 贵港市| 河北省| 莒南县| 营山县| 波密县| 遂宁市| 门头沟区| 原平市| 宁海县| 东山县| 从化市|