C++中的位運算符用于對二進制數進行操作。以下是C++中常用的位運算符及其運算規則:
與運算符(&):對兩個操作數的每一位進行與運算,如果兩個對應位都為1,則結果為1,否則為0。
或運算符(|):對兩個操作數的每一位進行或運算,如果兩個對應位有一個為1,則結果為1,否則為0。
異或運算符(^):對兩個操作數的每一位進行異或運算,如果兩個對應位不相同,則結果為1,否則為0。
非運算符(~):對操作數的每一位進行取反操作,將1變為0,0變為1。
左移運算符(<<):將操作數的二進制位向左移動指定的位數,左邊超出的位數將被丟棄,右邊補0。
右移運算符(>>):將操作數的二進制位向右移動指定的位數,右邊超出的位數將被丟棄,左邊的位數根據符號位進行補位。
以下是一些示例:
#include <iostream>
using namespace std;
int main() {
int a = 5; // 二進制表示為 00000101
int b = 3; // 二進制表示為 00000011
int c = a & b; // 與運算,結果為 00000001,即1
int d = a | b; // 或運算,結果為 00000111,即7
int e = a ^ b; // 異或運算,結果為 00000110,即6
int f = ~a; // 非運算,結果為 11111010,即-6
int g = a << 2; // 左移2位,結果為 00010100,即20
int h = b >> 1; // 右移1位,結果為 00000001,即1
cout << "c: " << c << endl;
cout << "d: " << d << endl;
cout << "e: " << e << endl;
cout << "f: " << f << endl;
cout << "g: " << g << endl;
cout << "h: " << h << endl;
return 0;
}
輸出結果:
c: 1
d: 7
e: 6
f: -6
g: 20
h: 1
請注意,位運算符只能用于整數類型,而不能用于浮點數。