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