本文使用btye类型举例。
1.位运算
&按位与运算。对应位置,同为1则为1,否则为0。
| 按位或运算。对应位置,同为0则为0,否则为1。
~按位取反运算,每一位0变1,1变0。
^按位异或运算,对应位相同为0,不同为1。
在某些情况下,位运算的运算效率比直接对数字进行加减乘除高很多。
2.移位运算
<< 左移运算,右边空出来的位用0填补高位左移溢出则舍弃该高位。左移几位其实就是这个数 *2 的几次幂。
>> 右移运算,
左边空出来的位用0或1填补,正数用0负数用1填补。右移几位其实就是这个数/2的几次幂 。
数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。
整型默认是使用int,所以计算无符号右移时,是按照32位二进制数进行计算的,所以结果一般不对。