![](/img/trans.png)
[英]logical multiplication of matrices 1 and 2 by the operation “AND” and “OR” in C
[英]C, Multiplication, Bit operation or *
我必須做很多乘法運算。 如果我考慮效率,那么我應該使用位操作而不是常規*操作嗎? 如果位操作有差異怎么辦? 提前致謝..
不,您應該使用乘法運算符,讓優化編譯器決定如何最快地完成它。
您會發現編譯器知道如何針對它所針對的任何平台做到最好。 更重要的是,如果你開始編寫位移操作而不是乘法或除法,你的代碼將很快變得不可維護。
優先考慮代碼優化的可讀性,讓編譯器為您完成。
不要嘗試使用二進制文件聰明,因為:
不,有兩大原因:
只有少數情況我可以想到你甚至可能開始考慮自定義解決方案:
位操作只能用於使用<<運算符(按位移位)乘以2的冪的數字
我記得還有其他方法來改進乘法,例如預先計算產品和存儲在矩陣中,但所有這些都取決於您在應用程序中的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.