快要忘记的两个位运算符

快要忘记的两个位运算符:

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

posted @ 2007-03-18 18:26  玉开  阅读(715)  评论(6编辑  收藏  举报