Побитовые операции - C# (184629)
Формулировка задачи:
Нужна помощь. впервые встречаюсь с побитовыми операциями. задания для меня, как минимум, непонятны.
Читал теорию, но примеров инвертирования, и вообще, работу с ними, не понял и не нашел...
1) Дан массив из 10 символов. Составить программу, инвертирующую порядок бит в байтах.
(если массив из 10 чисел я могу создать, то с самим заданием проблема)
2) Дан массив из знаковых чисел. Биты отрицательных чисел сдвинуть вправо на два разряда, а биты 0 и 4 положительных чисел сбросить. Элементы полученного массива представить в десятичном и шестнадцатеричном формате.
(тут вообще ничего не знаю, как и что)
Решение задачи: «Побитовые операции»
textual
Листинг программы
static void Main(string[] args)
{
byte b = 4;
byte reverse = Reverse(b);
Console.WriteLine(reverse); // 32
}
static byte Reverse(byte b)
{
int x = (b & 0xF0) >> 4 | (b & 0x0F) << 4;
x = (x & 0xCC) >> 2 | (x & 0x33) << 2;
x = (x & 0xAA) >> 1 | (x & 0x55) << 1;
return (byte) x;
}