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