C++位運算子
在C++當中,有六個位操作運算子,二進位制來進行操作
&
按位與 1 & 0 = 0
|
按位或 1 | 0 = 1
~
按位非 0 取反變成 1 1取反變成0
^
異或 相同為0 不同為1
<<
左移 二進位制往左靠,右側補零
>>
右移 二進位制往右靠,左側補零
0xff =
很明顯這個是 16進位制,15 + 15*16 = 255
0xaabf 轉換成二進位制 = 1010 1010 1011 1111
0xabcde 轉換二進位制 = 1010 1011 1100 1101 1110
輸出8進位制 60(8) 17(8)
int num1 = 060,num2 = 017,num3 = num1 | num2;
cout<<0<<oct<<num3;
//hex 十六進位制 oct 八進位制 dec 十進位制 bin 二進位制
交換兩個變數的值
int num1 = 3;
int num2 = 4;
num1 = num1^num2;
num2 = num2^num1;
num1 = num1^num2;
cout<<num1<<" "<<num2;
011 100
num1 = 011 ^ 100
num1 可以得到 111
num2 = 100 ^ 111
num2 可以得到011
總結: