Я немного смущен о том, как решить эту проблему.Побитовое XOR: настройка X бит
Я где-то читал, что
n^(1 << x)
будет решить. Могу ли я увидеть схематическое объяснение того, как это работает?
Я немного смущен о том, как решить эту проблему.Побитовое XOR: настройка X бит
Я где-то читал, что
n^(1 << x)
будет решить. Могу ли я увидеть схематическое объяснение того, как это работает?
Предположим, что мы работаем с 8-битным номером Сначала вы начинаете с 1
, который будет выглядеть в двоичном
00000001
затем использовать оператор <<
для сдвига битов операнда x
бит
если x = 4
00001000 (16 in decimal, 0x10 in hexadecimal)
затем использовать ^
оператор (XOR) с результирующим операндом
вход n=8
(00000100
)
результата
00000100
xor 00001000
= 00001100
PS: xor
бы флип бит не установлен его , если вы хотите установить его независимо от начального состояния, используйте оператор or
())
Таким образом, побитовый оператор накладывает левую сторону 1 << x на нули, а затем выполняется XOR? –
Я рекомендую вам прочитать статью [wikipedia about it] (https://en.wikipedia.org/wiki/Bitwise_operation#Bit_shifts), конечно, это наиболее распространенная реализация оператора смены битов. – dvhh