介紹
位元運算 (Bitwise Operation):對二進位表示的數字進行操作。
&:AND,兩個都 1 才是 1。
|:OR,有一個是 1 就是 1。
^:XOR,兩個不一樣才是 1。
~:NOT,變相反。
<< n:左移 n 位,等同於乘以 2 的 n 次方。
>> n:右移 n 位,等同於除以 2 的 n 次方。
奇偶判斷
透過奇數在二進位表示中最後一位是 1 的特性,我們可以進行奇偶判斷。
int n = 3;
if (n & 1) cout << "奇數";
else cout << "偶數";範例程式
#include <stdio.h>
void print_bin(char* s, int n) {
printf("%s = ", s);
for (int i = 7; i >= 0; i--) {
printf("%d", (n >> i) & 1);
}
printf("\n");
}
int main() {
int a = 170, b = 204;
print_bin("a", a); // 10101010
print_bin("b", b); // 11001100
print_bin("a & b", a & b); // 10001000
print_bin("a | b", a | b); // 11101110
print_bin("a ^ b", a ^ b); // 01100110
print_bin("~a", ~a); // 01010101
print_bin("a << 1", a << 1); // 01010100
print_bin("a >> 1", a >> 1); // 01010101
}