何时是班次操作员>>或"有用?

sma*_*man 3 .net c# bit-shift shift

可能重复:
何时在C#中使用Shift运算符<< >>?

我编程了一段时间,我从未使用过移位运算符.我可以看到它如何有助于计算像in这样的哈希码Tuple<T>,但除此之外,

移位运算符何时以及如何在C#/ .NET中有用?

Jar*_*Par 13

一般来说,它不经常使用.但是在处理位级操作时它非常有用.例如,打印出数值中的位

public static string GetBits(int value) {
  var builder = new StringBuilder();
  for (int i = 0; i < 32; i++) {
    var test = 1 << (31 - i);    
    var isSet = 0 != (test & value);
    builder.Append(isSet ? '1' : '0');
  }
  return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 10

写两个幂是有用的.

快点:什么是2 27
回答:1 << 27

写作1 << 27比起来更容易,也更容易理解134217728.

  • 我认为,虽然`Math.Pow(2,27)`比手动转换要好得多/自我记录:) (11认同)