2010-01-06 92 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

您还可以生成每个可能值和移位结果的查找表。然后,只需使用输入作为查找表中的索引即可获得所需结果

相关问题