Какой лучший способ перевернуть один бит в цепочке битов?
Скажем, например, у вас есть 8-символьная строка, представляющая 8-битный байт; т.е. '00000000'
(0), и вы хотите перевернуть один бит, чтобы сделать это '00010000'
(16). Какой лучший или самый элегантный способ сделать это?
1 ответ
Говоря о манипулировании битами, классический способ перевернуть один бит в n-й позиции:
x ^= 1 << n
XOR 1 всегда переворачивает бит. Но если вы используете строки, то каждый символ не бит, а целый байт. Таким образом, вы можете попробовать преобразование строки в int, используя XOR 1 и вставив новый символ обратно в строку. Или просто используя оператор if-else.