按位的与&
若x的第i位和y的第i位都是1,那么(x&y)=1,否则(x&y)
= 0
应用:希望让某一位或某些位为0 。取一个数中的一段。
按位的或|
若x的第i位==1或y的第i位==1,那么(x | y)=1,否则(x | y)
= 0
应用:使得某位或某几位为1。把两个数拼起来。
按位取反~
1变0,0变1。%hhx表示输出char
char c=0xAA;printf("~c=%hhx\n", (char)~c);
按位的异或^
如果两位相等,为0;不相等,为1。
<<左移
i<<j表示i中所有的位向左移动j个位置,而右边填入0.
所有<int的类型,移位以int的方式来做,结果是int
>>右移
i>>j表示i中所有的位向右移j位。
所有<int的类型,移位以int的方式来做,结果是int。
对于unsighed的类型,左边你填0;对于signed类型,左边填入原来的最高位(保持符号不变)。