一、位运算符
操作符 | 描述 | 例子 |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | (A&B)得到12,即0000 1100 |
| | 如果相对应位都是0,则结果为0,否则为1 | (A | B)得到61,即 0011 1101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
〜 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0 | (〜A)得到-61,即1100 0011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数 | A << 2 得到240,即 1111 0000 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数 | A >> 2 得到15,即 1111 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充 | A>>> 2得到15,即0000 1111 |
例子1:用最有效率的方法算出 2 乘以 8 等于几
2 << 3(相当于:2*2^3 == 2*8)
将一个数左移 n 位,就相当于乘以了 2 的 n 次方,那么,一个数乘以 8 只要将其左移 3 位即可,而
位运算是 cpu 直接支持的,效率最高
,所以,2 乘以 8 等于几的最效率的方法是 2 << 3。