LeadingZeroCountメソッドTrailingZeroCountメソッドは、1のビットに先行/後続する0のビットの数(最上位/最下位ビットから見て0の桁が連続する数)を計上します。 x86 LZCNT/TZCNT命令に類似する演算を行います。

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

BitOperations.LeadingZeroCount/TrailingZeroCountメソッドで先行/後続する0のビットの数を計上する .NET Core 3.0
using System;
using System.Numerics;

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

    // BitOperations.LeadingZeroCountで最上位ビットから連続する0のビットの数を求める
    int lzcnt = BitOperations.LeadingZeroCount(val);

    // BitOperations.TrailingZeroCountで最下位ビットより連続する0のビットの数を求める
    int tzcnt = BitOperations.TrailingZeroCount(val);

    foreach (var amount in new[] {0, 1, 2, 29, 30, 31}) {
      val = 0b_1u << amount;
      lzcnt = BitOperations.LeadingZeroCount(val);

      Console.WriteLine($"LeadingZeroCount({val.ToBinary()}) = {lzcnt}");
    }
    Console.WriteLine();

    foreach (var amount in new[] {0, 1, 2, 29, 30, 31}) {
      val = 0b_1u << (31 - amount);
      tzcnt = BitOperations.TrailingZeroCount(val);

      Console.WriteLine($"TrailingZeroCount({val.ToBinary()}) = {tzcnt}");
    }
    Console.WriteLine();
  }

#region "数値を二進数表記で文字列化するためのメソッド"
  static string ToBinary(this uint number) => "0b_" + Convert.ToString(number, 2).PadLeft(8 * sizeof(uint), '0');
#endregion
}
実行結果
LeadingZeroCount(0b_00000000000000000000000000000001) = 31
LeadingZeroCount(0b_00000000000000000000000000000010) = 30
LeadingZeroCount(0b_00000000000000000000000000000100) = 29
LeadingZeroCount(0b_00100000000000000000000000000000) = 2
LeadingZeroCount(0b_01000000000000000000000000000000) = 1
LeadingZeroCount(0b_10000000000000000000000000000000) = 0

TrailingZeroCount(0b_10000000000000000000000000000000) = 31
TrailingZeroCount(0b_01000000000000000000000000000000) = 30
TrailingZeroCount(0b_00100000000000000000000000000000) = 29
TrailingZeroCount(0b_00000000000000000000000000000100) = 2
TrailingZeroCount(0b_00000000000000000000000000000010) = 1
TrailingZeroCount(0b_00000000000000000000000000000001) = 0