A bit manipulation readability enhancement library.
Calculate the index of the highest bit that’s been set.
public static int GetHighestBitSet(this ulong number);
number
System.UInt64
The number to evaluate.
System.Int32 The index of the highest bit that’s been set; or -1 if none were set.
ulong v = 1;
Console.WriteLine($"{v.GetHighestBitSet()}"); // outputs: 0
v = 2;
Console.WriteLine($"{v.GetHighestBitSet()}"); // outputs: 1
v = 3;
Console.WriteLine($"{v.GetHighestBitSet()}"); // outputs: 1
v = 4;
Console.WriteLine($"{v.GetHighestBitSet()}"); // outputs: 2