C语言支持全部的位操作符(Bitwise Operators)。位操作是对字节或字中的位(bit)进行测试、置位或移位处理,
6种位操作符的形式与含义如下:
& :按位“与”(AND);
| :按位“或”(OR);
^ :按位“异或”(XOR);
~ :“取反” (NOT);
》 :数据右移;
《 :数据左移;
1) 按位“与”运算
按位“与”运算符 & 的作用是对运算符两侧以二进制表达的操作数按位分别进行“与”运算,而这一运算是以数中相同的位(bit)为单位的。
操作的规则是:仅当两个操作数都为1时,输出的结果才为1,否则为0。
例如:
a = 0x88,b = 0x81,则a & b 的运算结果如下:
0x88 1000 1000 a数
& 0x81 1000 0001 b数
= 1000 0000
其中,& 运算符让a数0x88与B数0x81的1位与1位、2位与2位……7位与7位分别相“与”。由于“与”运算的操作规则是,两个操作数中各位只要有1个为0,其结果中对应的位就为0。而a数与b数中只有最高位(第7位)均为1,因而该位结果为1,其它各位结果都为0。
通常我们可把按位“与”操作 & 作为关闭某位(即将该位置0)的手段,例如我们想要关闭a数中的第3位&#
算法设计(一) 比特位操作
最新推荐文章于 2023-04-23 17:32:16 发布