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
总结: