快要忘记的两个位运算符
快要忘记的两个位运算符:
1. ~ 表示按位取补
例如:~0x1234fed = 0xedcb012
这个运算符在某种枚举的减去运算中效果很好,例如:
pubic enum Flags {level0:0, level1:1,level2:4}
我们用:flag = Flages.level0 | Flags.level1表示既有level0也有level1
当我们希望运行时去掉level0时,我们可以这么写flag = flag & (~Flags.level0)这样写不管flag中有没有level0都可以保证将level0去掉。
2. ^ 表示异或
定义:true ^ true = false; false ^ false = false; false ^ true = true; true ^ false = true