Заголовок вашего вопроса и ваш код делают разные вещи.
0x1
означает «1», интерпретируемый как шестнадцатеричные цифры.Это то же самое, что и 1 в десятичном виде.
Так что _type =0x1
просто устанавливает _type
в 1.
^
означает оператор XOR (исключающий-или).
^=
означает, что вычисляется XOR левой части с правой стороны и присваивается результат левой стороне.Другими словами, ios_type ^= 0x1
- это то же самое, что и ios_type = ios_type ^ 0x1
.
Так что ios_type ^= 0x1
переключает 1 бит ios_type
.