Страницы

Поиск по вопросам

четверг, 4 апреля 2019 г.

Инверсия бита в числе

Как инвертировать 4-й бит в числе?
a=165; a=~a<<4
Правильно?


Ответ

$(( a ^ 0x10 ))
или, для наглядности (спасибо @mkkik):
$(( a ^ 1 << 4 )) $(( a ^ (1 << 4) ))
^ - операция побитового исключительного "или" (переключатель, иными словами); 0x10 - четвёртый бит, если считать самый младший нулевым. Во втором варианте приоритет сдвига << выше, чем ^: сначала выполнится сдвиг, а потом переключение флага. Поэтому скобки необязательны, но улучшают восприятие.

Комментариев нет:

Отправить комментарий