Log2メソッドは、2を底とした対数(2進対数、⌊log2n⌋・⌊lb n⌋)を求めます。

Math.Logメソッドによっても2進対数を求めることはできますが、LeadingZeroCountメソッド相当のビット演算によって計算される点、これに従い戻り値が整数(⌊lb n⌋)となる点が異なります。 たとえば、値が100(2)から111(2)の場合、Log2メソッドの結果はすべて2(10)となります。 Mathクラスを使った場合にMath.Floor(Math.Log(2.0, n))とすることで得られる値が、Log2メソッドの結果となります。

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

BitOperations.Log2メソッドで2進対数を求める .NET Core 3.0
Imports System
Imports System.Numerics

Module Sample
  Sub Main()
    ' BitOperations.Log2メソッドはuint/ulongに対してのみ使用できる
    Dim val As UInteger = &B_1000_0000_0000_0000_0000_0000_0000_0001UI

    ' BitOperations.Log2で2を底とした対数を求める
    Dim log2 As Integer = BitOperations.Log2(val)

    ' Math.Logで求める場合との比較
    For Each _val As UInteger In New UInteger() {&H1UI, &H5UI, &H123UI, &HCAFEUI, &H80000000UI, &HFFFFFFFEUI}
      Console.WriteLine($"val = {_val.ToBinary()}   BitOperations.Log2(val) = {BitOperations.Log2(_val)}   Math.Log(val, 2) = {Math.Log(_val, 2.0)}")
    Next
  End Sub

#Region "数値を二進数表記で文字列化するためのメソッド"
  <System.Runtime.CompilerServices.Extension> _
  Function ToBinary(ByVal number As UInteger) As String
    Return "&B_" + Convert.ToString(number, 2).PadLeft(8 * Len(number), "0"c)
  End Function
#End Region
End Module
実行結果
val = &B_00000000000000000000000000000001   BitOperations.Log2(val) = 0   Math.Log(val, 2) = 0
val = &B_00000000000000000000000000000101   BitOperations.Log2(val) = 2   Math.Log(val, 2) = 2.321928094887362
val = &B_00000000000000000000000100100011   BitOperations.Log2(val) = 8   Math.Log(val, 2) = 8.184875342908285
val = &B_00000000000000001100101011111110   BitOperations.Log2(val) = 15   Math.Log(val, 2) = 15.665280393678295
val = &B_10000000000000000000000000000000   BitOperations.Log2(val) = 31   Math.Log(val, 2) = 31.000000000000004
val = &B_11111111111111111111111111111110   BitOperations.Log2(val) = 31   Math.Log(val, 2) = 31.999999999328193