(&, |, ^, ~, >>, <<), .
& ( Ȼ) .
| ( Ȼ) .
& |, , && ||, , . , Var1 = 1, Var2 = 4, (Var1 & Var2) , (Var1 && Var2) .
^ ( Ȼ) 2 .
~ ( ) .
(<<) (>>) .
(2, 4, 8, ). , .
.
<<
<< . :
Var1 = Var2 << Num;
Var1 Var2 , Nun .
Var2 Num . .
Var1 Var2 ,
Var <<= Num;
:
unsigned char n = 0x01; // n = 0b00000001
n = n << 4; // n = 0b00010000
unsigned char m = 0x03; // m = 0b00000011
m <<= 2; // m = 0b00001100
, :
Unsigned char n;
n = 1 << 5;
, 0b00000001, , n 0b00100000.
>>
>> . :
Var1 = Var2 >> Num;
Var2 Num . , , Var2 , . , . .
:
unsigned char n = 0x80; // n = 0b10000000
|
|
n = n >> 4; // n = 0b00001000
unsigned char m = 0x0; // m = 0b11000000
m >>= 2; // m = 0b00110000
~
~ , .. 1 0 . .
Var1 = ~Var2;
:
unsigned char n = 0xAA; // n = 0b10101010
n = ~n; // n = 0b01010101
&
& "". , 1 , 1. 0.
Var1 = Var2 & Var3;
:
Unsigned char a, b, c;
a = 0x55; // a = 0b01010101
b = 0x01; // b = 0b00000001
c = a & b; // = 0b00000001
& , , , , 0.
:
Unsigned char a, mask;
a = 0x75; // a = 0b01110101
mask = 0x0F; // mask = 0b00001111
a = a & mask; // a = 0b00000101
|
| "". , 1, 1 .
Var1 = Var2 | Var3;
:
Unsigned char a, b, c;
a = 0x55; // a = 0b01010101
b = 0x81; // b = 0b10000001
c = a | b; // = 0b11010101
| , , , , 1.
:
Unsigned char a, mask;
a = 0x05; // a = 0b00000101
mask = 0xF0; // mask = 0b11110000
a = a | mask; // a = 0b11110101
2 ^
^ "", 1, , 0, .
Var1 = Var2 ^ Var3;
:
Unsigned char a, b, c;
a = 0x55; // a = 0b01010101
b = 0x03; // b = 0b00000011
c = a ^ b; // = 0b01010110
^ , , , 1.
:
Unsigned char a, mask;
a = 0x55; // a = 0b01010101
mask = 0xF0; // mask = 0b11110000
a = a ^ mask; // a = 0b10100101