& | ^ ~ << >> 按位运算符

与(&) |(或) ^(异或)  ~(取反) <<(左移)

先将两个数全部转化成为2进制再进行比较,再进行比较,位数不同则前面添0变为位数相同,然后再将得到的结果转化为你想要的类型显示

两个数进行&操作,同位置同为1才为1,否则为0

两个数进行|操作,同位置有1则为1,同0才为0

两个数进行^操作,同位置不同则为1,相同则为0

一个数进行~操作,该位置的1变成0,0变成1

a<<2表示将a整体向左移动2位

a>>2表示将a的末尾去掉2位

例如:
char a=0xA2int b=023;
求a&b,a|b,a^b,~a,b<<2,a>>2
先a转换成二进制:1010 0010
b转换为二进制:  0001 0011

a&b=000010=2
a|b=10110011=178
a^b=10110001=176
~a=01011101=92
b<<2=100 1100=78
a>>2=1 0100=20


原文地址:https://www.cnblogs.com/aigeileshei/p/5432719.html