BitSharp.Core.DataCalculator.HighBit C# (CSharp) Method

HighBit() private static method

private static HighBit ( UInt256 value ) : int
value UInt256
return int
        private static int HighBit(UInt256 value)
        {
            var parts = value.Parts;
            for (var pos = parts.Length - 1; pos >= 0; pos--)
            {
                var part = parts[pos];
                if (part != 0)
                {
                    for (var bits = 63; bits > 0; bits--)
                    {
                        if ((part & 1UL << bits) != 0)
                            return 64 * pos + bits + 1;
                    }
                    return 64 * pos + 1;
                }
            }

            return 0;
        }
    }