課堂筆記 - C++ 位運算子

UCCM-bubaa發表於2024-07-31

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

總結:

相關文章