BitRangeTypes
Primer raboty s bitovymi diapazonami fiksirovannoi dliny (1-8 bit). Podderzhivaet bezznakovye (UBit) i znakovye (SBit) tipy s proverkoi na perepolnenie. Vybrasyvaet OverflowException pri perepolenii.
Primery:
// Bezznakovyi tip (4 bita)
UBit<BitCount4> value = 10; // Dopustimo: 0..15
byte result = value; // 10
UBit<BitCount4> value = 10; // Dopustimo: 0..15
byte result = value; // 10
// Znakovyi tip (5 bit)
SBit<BitCount5> signedValue = -10; // Dopustimo: -16..15
sbyte signedResult = signedValue; // -10
SBit<BitCount5> signedValue = -10; // Dopustimo: -16..15
sbyte signedResult = signedValue; // -10
// Bezznakovyi tip 3 bita (0..7)
UBit<BitCount3> value1 = 5;
Console.WriteLine(value1); // Vyvedet: 5
// Popytka vyiti za predely diapazona
try
{
value1 = 10; // Dopustimyi diapazon: 0..7
}
catch (OverflowException)
{
Console.WriteLine("Oshibka: znachenie za predelami diapazona.");
}
UBit<BitCount3> value1 = 5;
Console.WriteLine(value1); // Vyvedet: 5
// Popytka vyiti za predely diapazona
try
{
value1 = 10; // Dopustimyi diapazon: 0..7
}
catch (OverflowException)
{
Console.WriteLine("Oshibka: znachenie za predelami diapazona.");
}
Diapazony
| Kolichestvo bit | Bezznakovyi diapazon (UBit) |
Znakovyi diapazon (SBit) |
|---|---|---|
| 1 bit | 0 - 1 |
-1 - 0 |
| 2 bita | 0 - 3 |
-2 - 1 |
| 3 bita | 0 - 7 |
-4 - 3 |
| 4 bita | 0 - 15 |
-8 - 7 |
| 5 bit | 0 - 31 |
-16 - 15 |
| 6 bit | 0 - 63 |
-32 - 31 |
| 7 bit | 0 - 127 |
-64 - 63 |
| 8 bit | 0 - 255 |
-128 - 127 |