2015-08-28 2 views

ответ

2

Предположим, что мы работаем с 8-битным номером Сначала вы начинаете с 1

, который будет выглядеть в двоичном

00000001 

затем использовать оператор << для сдвига битов операнда x бит

если x = 4

00001000 (16 in decimal, 0x10 in hexadecimal) 

затем использовать ^ оператор (XOR) с результирующим операндом

вход n=8 (00000100)

результата

 00000100 
xor 00001000 
    = 00001100 

PS: xor бы флип бит не установлен его , если вы хотите установить его независимо от начального состояния, используйте оператор or ())

+0

Таким образом, побитовый оператор накладывает левую сторону 1 << x на нули, а затем выполняется XOR? –

+1

Я рекомендую вам прочитать статью [wikipedia about it] (https://en.wikipedia.org/wiki/Bitwise_operation#Bit_shifts), конечно, это наиболее распространенная реализация оператора смены битов. – dvhh