Метод Log2
Статический BitOperations.Log2 принимает
uint или ulong больше нуля и
возвращает int - степень двойки,
на которую можно умножить 2, не
превышая аргумент (округление вниз). Это
не Math.Log2,
который даёт double. Для 0
результат не определён.
Синтаксис
int exp = BitOperations.Log2(8u);
Пример
Давайте найдём Log2 для 8u:
using System;
using System.Numerics;
class Program
{
static void Main()
{
int res = BitOperations.Log2(8u);
Console.WriteLine(res);
}
}
Результат выполнения кода:
3
Пример
Давайте найдём Log2 для 15u
(не степень двойки):
using System;
using System.Numerics;
class Program
{
static void Main()
{
int res = BitOperations.Log2(15u);
Console.WriteLine(res);
}
}
Результат выполнения кода:
3
Пример
Давайте найдём Log2 для 16u:
using System;
using System.Numerics;
class Program
{
static void Main()
{
int res = BitOperations.Log2(16u);
Console.WriteLine(res);
}
}
Результат выполнения кода:
4
Смотрите также
-
метод
Math.Log2,
который возвращаетdouble -
метод
LeadingZeroCount,
который связан с позицией бита -
метод
PopCount,
который считает единичные биты -
BitOperations,
класс, где объявленLog2