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