C++中,位操作符是一種對二進制位進行操作的運算符,用于對二進制數(shù)進行位移、與、或、異或等操作。在C++中,有6個位操作符,包括左移運算符(<<)、右移運算符(>>)、按位與運算符(&)、按位或運算符(|)、按位異或運算符(^)和按位取反運算符(~)。這些運算符可以用于整數(shù)類型的變量,例如int、char、short、long等。
左移運算符(<<)將一個數(shù)的二進制位向左移動指定的位數(shù),右邊用0填充。例如,將二進制數(shù)1010左移2位后,變?yōu)?01000。右移運算符(>>)將一個數(shù)的二進制位向右移動指定的位數(shù),左邊用0填充。例如,將二進制數(shù)1010右移2位后,變?yōu)?0。
示例代碼:
#include <iostream> using namespace std; int main() { int num1 = 10; // binary: 1010 int num2 = num1 << 2; // left shift 2 bits, binary: 101000 int num3 = num1 >> 2; // right shift 2 bits, binary: 10 cout << "num2: " << num2 << endl; cout << "num3: " << num3 << endl; return 0; }
按位與運算符(&)對兩個數(shù)的二進制位進行與操作,即兩個相應(yīng)的二進制位都為1時,結(jié)果為1,否則為0。
示例代碼:
#include <iostream> using namespace std; int main() { int num1 = 10; // binary: 1010 int num2 = 12; // binary: 1100 int result = num1 & num2; // result binary: 1000 cout << "result: " << result << endl; return 0; }
按位或運算符(|)對兩個數(shù)的二進制位進行或操作,即兩個相應(yīng)的二進制位中只要有一個為1時,結(jié)果為1,否則為0。
示例代碼:
#include <iostream> using namespace std; int main() { int num1 = 10; // binary: 1010 int num2 = 12; // binary: 1100 int result = num1 | num2; // result binary: 1110 cout << "result: " << result << endl; return 0; }
按位異或運算符(^)對兩個數(shù)的二進制位進行異或操作,即兩個相應(yīng)的二進制位有一個為1且另一個為0時,結(jié)果為1,否則為0。
示例代碼:
#include <iostream> using namespace std; int main() { int num1 = 10; // binary: 1010 int num2 = 12; // binary: 1100 int result = num1 ^ num2; // result binary: 11010 cout << "result: " << result << endl; return 0; }
按位取反運算符(~)對一個數(shù)的二進制位進行取反操作,即把每個二進制位上的1變?yōu)?,0變?yōu)?。
示例代碼:
#include <iostream> using namespace std; int main() { int num1 = 10; // binary: 1010 int result = ~num1; // result binary: 0101 cout << "result: " << result << endl; return 0; }
在C++中,位操作符的優(yōu)先級比較低,低于加減乘除等算術(shù)運算符,但高于賦值運算符。位操作符的結(jié)合性是從左到右,即先對左邊的操作數(shù)進行操作,再對右邊的操作數(shù)進行操作。
示例代碼:
#include <iostream> using namespace std; int main() { int num1 = 10; // binary: 1010 int num2 = 12; // binary: 1100 int result = (num1 & num2) | (num1 ^ num2); // result binary: 11110 cout << "result: " << result << endl; return 0; }
本文鏈接:http://www.www897cc.com/showinfo-26-13513-0.html聊一聊C++中的位操作符
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com