先看例子:
#include <iostream> using namespace std; int main() { int num = 32; int half = num >> 1; int quarter = num >> 2; int doublenum = num << 1; int quadruple = num << 2; cout << "half = " << half << endl; cout << "quarter = " << quarter << endl; cout << "doublenum = " << doublenum << endl; cout << "quadruple = " << quadruple << endl; return 0; }
half = 16
quarter = 8
doublenum = 64
quadruple = 128
按位右移
數字為32=25,二進制為10000,右移一位為01000(左側補零),即$2^4=16$。右移二位為00100,即$2^3=8$。
按位左移
右移一位為100000(右側補零),即$2^6=64$。右移二位為1000000,即$2^7=128$。
注意:
不能出現cout<< 2>>1 <<endl; 必須得打上括號 cout<< (2>>1) <<endl; 因為>>和<<運算級是一樣的,並且這里是輸入輸出運算符,編譯器會無法識別。