2010-01-06 77 views

回答

2

您是否真的嘗試過?它是非最優的,它會產生垃圾結果。這應該更好地工作:

static int RollLeft4Bits(int n) { 
     return ((n << 1) & 15) | ((n >> 3) & 1); 
    } 
+0

哇,我只是重新測試我的代碼與其他東西比12和9的n和你的權利,我的代碼是錯誤的 – Fredou 2010-01-06 20:17:07

1

對我來說看起來不錯。但是如果你真的關心優化,那麼請嘗試編譯這個和你有的任何替代方案,然後使用ildasm或Reflector來查看生成的IL以確認。

1

您還可以生成每個可能值和移位結果的查找表。然後,只需使用輸入作爲查找表中的索引即可獲得所需結果

相關問題