位运算
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算,就是直接对整数在内存中的二进制位进行操作。比如,&&运算本来是一个逻辑运算符,但整数与整数之间也可以进行&运算。按位进行操作,
按位与运算(&)
按位进行操作,00001011&00000011=0000011,只有同位的两边同时为1,得到的结果才为1,否则为0.
按位或运算(|)
按位进行操作,00001011 | 00000011=00001011,只要同位的两边有一个为1,得到的结果为1,否则为0
按位异或运算(^)
按位进行操作,00001011 | 00000011=0000100,只有同位的两边不同,得到的结果才为1,否则为0
按位非运算(~)
按位进行操作,~101010=010101,位值取反,置0为1,或置1为0。
左移运算(<<)
11 << 1 = 22,左移一位相当于将原来的数乘2
右移运算(>>)
10 >> 1 = 5,右移一位相当于将原来的数除以2
优先级
在位运算中,取反~优先级最高,其次是左移<<和右移>>,在下来是与&,后是异或^,最后是或|