Побитовые операции - C (СИ) (147791)
Формулировка задачи:
Есть число 0x7с1b. Перевожу его в двоичный вид - 0111110000011011. Каждый бит за что то отвечает. Но некоторые биты сгруппированы. То есть первый бит - отдельно, второй отдельно и т.д. Надо просто проверить их значение. Тут несложно. 8 и 9 идут вместе. Как с помощью побитовых операции сравнить 8 и 9 биты с двоичными числами 00, 01,10,11; 10-14 биты тоже сгруппированы и их тоже надо сравнить по аналогии с 8 и 9 но уже с 5 битовым числом
Решение задачи: «Побитовые операции»
textual
Листинг программы
y = (x >> 8) & 3; // 3 равно 11 в двоичной системе
switch (y) {
case 0: ...
case 1: ...
case 2: ...
case 3: ...
}
Объяснение кода листинга программы
x- исходное значение переменной, которое требуется обработать.y- результат побитовой операции>>и&, сохраненный в этой переменной.3- значение, которое будет присвоено переменнойy, если результат побитовой операции>>и&будет равен 3.- ... - место для кода, который будет выполнен в зависимости от значения переменной
y. В данном случае, поскольку у нас только 4 варианта значенияy, то у нас будет 4 блока кода, которые будут выполнены в зависимости от значенияy.