Как работают битовые операции в данных программах?

Рейтинг: -3Ответов: 1Опубликовано: 24.01.2023
unsigned char i = 0, j(50), k = 128;
for(i = 17; i < 33; i += 3){
    j += k++;
    k >>= 1;
}
printf("i = %03d; j = %d; k = %04d", i, j, k);
return 44;

...

unsigned char d, f, g;
int a = 520;
d = a++;
f = --d;
g = d & 0x7E;
g <<= 3;
printf("d = %d; f = %d; g = %d", d, f++, g);

Расскажите как работают сдвиги в данных программах.

P.S.буду очень благодарен, если что это две разные программы

Ответы

▲ 1Принят

перевод числа в 2 двоичную систему счисления и побитовый сдвиг. Рассмотрим на примере k >>= 1; Пусть К = 10 переводим в 2ю систему счислений 1010 далее выполняем сдвиг и получаем 101 что будет 5

То есть действие >> убирает справа цифру в двоичном числе

А << добавляет 0 справа