Страницы

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

воскресенье, 2 февраля 2020 г.

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

#linux #ubuntu #bash


Как инвертировать 4-й бит в числе?

a=165; a=~a<<4


Правильно?
    


Ответы

Ответ 1



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

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

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