Пример работы с битовыми диапазонами фиксированной длины (1-8 бит). Поддерживает беззнаковые (UBit) и знаковые (SBit) типы с проверкой на переполнение. Выбрасывает OverflowException при переполении.
// Беззнаковый тип (4 бита)
UBit<BitCount4> value = 10; // Допустимо: 0..15
byte result = value; // 10
// Знаковый тип (5 бит)
SBit<BitCount5> signedValue = -10; // Допустимо: -16..15
sbyte signedResult = signedValue; // -10
// Беззнаковый тип 3 бита (0..7)
UBit<BitCount3> value1 = 5;
Console.WriteLine(value1); // Выведет: 5
// Попытка выйти за пределы диапазона
try
{
value1 = 10; // Допустимый диапазон: 0..7
}
catch (OverflowException)
{
Console.WriteLine("Ошибка: значение за пределами диапазона.");
}
Количество бит | Беззнаковый диапазон (UBit ) |
Знаковый диапазон (SBit ) |
---|---|---|
1 бит | 0 – 1 |
-1 – 0 |
2 бита | 0 – 3 |
-2 – 1 |
3 бита | 0 – 7 |
-4 – 3 |
4 бита | 0 – 15 |
-8 – 7 |
5 бит | 0 – 31 |
-16 – 15 |
6 бит | 0 – 63 |
-32 – 31 |
7 бит | 0 – 127 |
-64 – 63 |
8 бит | 0 – 255 |
-128 – 127 |