PopCountメソッドは、立っている(1である)ビットの数(population count)を計上します。 x86 POPCNT命令に類似する演算を行います。

PopCountメソッドは、uint/UInteger, ulong/ULongの整数型のみに対して定義されています。 なお、結果はint/Integerで返されます。

BitOperations.PopCountメソッドで立っているビットの数を計上する .NET Core 3.0
using System;
using System.Numerics;

static class Sample {
  static void Main()
  {
    // BitOperations.PopCountメソッドはuint/ulongに対してのみ使用できる
    uint val = 0b_1111_0000_1010_0000_1000_0100_0010_0001;

    // BitOperations.PopCountで立っているビット(1のビット)の数を求める
    int popcnt = BitOperations.PopCount(val);

    foreach (var _val in new uint[] {0x1u, 0x5u, 0x123u, 0xCAFEu, 0xFFFFFFFEu}) {
      popcnt = BitOperations.PopCount(_val);

      Console.WriteLine($"PopCount({_val.ToBinary()}) = {popcnt}");
    }
  }

#region "数値を二進数表記で文字列化するためのメソッド"
  static string ToBinary(this uint number) => "0b_" + Convert.ToString(number, 2).PadLeft(8 * sizeof(uint), '0');
#endregion
}
実行結果
PopCount(0b_00000000000000000000000000000001) = 1
PopCount(0b_00000000000000000000000000000101) = 2
PopCount(0b_00000000000000000000000100100011) = 4
PopCount(0b_00000000000000001100101011111110) = 11
PopCount(0b_11111111111111111111111111111110) = 31

MENTAにてテキストチャットによるサポートを行っています。 問題の解決法をお探しの方や.NET/C#を学習中の方はどうぞご利用ください。