【C++】位元運算

介紹

位元運算 (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
}
發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *