int a = 1;
int b = 2;
int c = b ^ a ^ a;
^符号表示按位异或
一个位上只有两种状态
假设这两种状态为s与rs
再设s表示相同状态,rs表示不同状态
bit1 | s | s |
---|---|---|
bit2 | s | rs |
bit1 ^ bit2 | s | rs |
bit1 ^ bit2 ^ bit2 | s | s |
因此:
assert(c == b);
int a = 1;
int b = 2;
int c = b ^ a ^ a;
^符号表示按位异或
一个位上只有两种状态
假设这两种状态为s与rs
再设s表示相同状态,rs表示不同状态
bit1 | s | s |
---|---|---|
bit2 | s | rs |
bit1 ^ bit2 | s | rs |
bit1 ^ bit2 ^ bit2 | s | s |
因此:
assert(c == b);