XOR演算子 ^ を使う
この演算子はビットごとのXORを返す。
命題 P | 命題 Q | P ⇔ Q |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
enum { AAA = 1 << 0, BBB = 1 << 1, CCC = 1 << 2, DDD = 1 << 3, EEE = 1 << 4, FFF = 1 << 5, }; int _tmain(int argc, _TCHAR* argv[]) { int i = 0; i ^= AAA; // -> 1 i ^= AAA; // -> 0 i ^= BBB; // -> 2 i ^= BBB; // -> 0 i ^= CCC; // ->4 i ^= CCC; // ->0 i ^= FFF; // ->32 i ^= FFF; // ->0 i = 100; // = 1100100 i ^= AAA; // -> 101 i ^= AAA; // -> 100 i ^= BBB; // -> 102 i ^= BBB; // -> 100 i ^= CCC; // ->96 i ^= CCC; // ->100 i ^= FFF; // ->68 i ^= FFF; // ->100 i = 1000; // = 1111101000 i ^= AAA; // -> 1001 i ^= AAA; // -> 1000 i ^= BBB; // -> 1002 i ^= BBB; // -> 1000 i ^= CCC; // ->1004 i ^= CCC; // ->1000 i ^= FFF; // ->968 i ^= FFF; // ->1000 i = 255; // = 11111111 i ^= AAA; // -> 254 i ^= AAA; // -> 255 i ^= BBB; // -> 253 i ^= BBB; // -> 255 i ^= CCC; // ->251 i ^= CCC; // ->255 i ^= FFF; // ->223 i ^= FFF; // ->255 return 0; } |