Introduction - C++ Bitwise Operations

先导篇 - C++位运算

位运算作为C++的特性之一,由于更接近底层,执行速度比正常的四则运算符快(对于降低时间复杂度十分有效)。对于一些特殊的判断或运算,如果能灵活运用位运算可以达到预想不到的效果

知识回顾

1. &)运算的规则

有 0 则 0 ,全 1 才 1

1 & 1 = 1 
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

两位同时为1,结果才为1

2. |)运算的规则

有 1 则 1 ,全 0 才 0

1 | 1 = 1 
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0

有一位为1,结果就为1

3. 异或^)运算的规则

相同为 0 ,相异为 1

1 ^ 1 = 0 
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0

两位不同,结果才为1

4. 左移运算符 <<

低位补 0

可以将一个对象的二进制向左移n位,左边n位丢弃,右边n位补0。比如,a = 1101

a << 2 = 0100

5. 右移运算符 >>

高位补 0

可以将一个对象的二进制向右移n位,右边n位丢弃,左边n位补0。比如,a = 1101

a >> 2 = 0011

Last updated