[問題] 整數運算的問題

看板Programming作者 (懂得放手..才是王道)時間10年前 (2014/11/22 13:46), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串1/1
有個整數的運算的問題想請教, 有個整數要做除法, 如下: unsigned long n; n/31.25 (不用浮點數)==>(n<<5)/1000 請問有辦法可以省去除法還符合上面的算式嗎? 感謝.. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.236.152 ※ 文章網址: http://www.ptt.cc/bbs/Programming/M.1416635212.A.01C.html

11/22 14:48, , 1F
除以 31.25 等於乘上 4/125, 也就是總有個
11/22 14:48, 1F

11/22 14:49, , 2F
125 要處理, 所以頂多寫成 (n<<2)/125
11/22 14:49, 2F

11/22 14:49, , 3F
如果你是想問除法的效率問題的話
11/22 14:49, 3F

11/22 14:50, , 4F
現在的編譯器對於固定除數的除法都知道
11/22 14:50, 4F

11/22 14:50, , 5F
要怎麼做才會在目標的機器上面比較快
11/22 14:50, 5F

11/22 14:50, , 6F
所以這方面就交給編譯器就好了
11/22 14:50, 6F

11/22 21:45, , 7F
非常感謝..
11/22 21:45, 7F
文章代碼(AID): #1KS2DC0S (Programming)
文章代碼(AID): #1KS2DC0S (Programming)