1.符号:
&:按位与
|:按位或
~:按位取反
^:按位异或
<<:位左移(左移出的数据丢弃,右侧补0)
>>:位右移(右移出的数据丢弃,左侧补0)
2.运算(改变flags的位值):
(1)打开位(置1位):
flags |= MASK;
flags = flags | MASK;
MASK为 1 的位被打开(置1)
MASK为 0 的位不改变
(2)关闭位(清零位):
flags &= ~(MASK);
flags = flags & ~(MASK);
MASK为 1 的位被关闭(置0)
MASK为 0 的位不改变
(3)切换位:
flags ^= MASK;
flags = flags ^ MASK;
MASK为 1 的位被切换
MASK为 0 的位不改变
(4)位左移、位右移:
flags<<n; // flags位左移n位
flags>>n; // flags位右移n位
1190

被折叠的 条评论
为什么被折叠?



