Какой лучший способ перевернуть один бит в цепочке битов?

Скажем, например, у вас есть 8-символьная строка, представляющая 8-битный байт; т.е. '00000000' (0), и вы хотите перевернуть один бит, чтобы сделать это '00010000' (16). Какой лучший или самый элегантный способ сделать это?

1 ответ

Говоря о манипулировании битами, классический способ перевернуть один бит в n-й позиции:

x ^= 1 << n

XOR 1 всегда переворачивает бит. Но если вы используете строки, то каждый символ не бит, а целый байт. Таким образом, вы можете попробовать преобразование строки в int, используя XOR 1 и вставив новый символ обратно в строку. Или просто используя оператор if-else.

Другие вопросы по тегам