首页 > 代码库 > 位运算符
位运算符
<< 左移 其实就是乘以2的移动位数次幂
3 << 2 = 12 ‐‐> 3*2*2=12
0000-0000 0000-0000 0000-0000 0000-0011
向左移动两位,移动后往后面补上两个0,结果为0000-0000 0000-0000 0000-0000 0000-1100------>12,越移越大
>> 右移 其实就是除以2的移动位数次幂
3 >> 1 = 1 ‐‐> 3/2=1
0000-0000 0000-0000 0000-0000 0000-0011
向右移动一位,移动后往前面补上一个0(如果最高位是1,就拿1补),结果为0000-0000 0000-0000 0000-0000 0000-0001------->1,越移越小
>>> 无符号右移
3 >>> 1 = 1 ‐‐> 3/2=1
无论最高位是什么都拿0补。
& 与运算
6 & 3 = 2
110
&011
---------
010 = 2
(运算规律:把0当做是假,把1当做是真)
| 或运算
6 | 3 = 7
110
|011
-----------
111 = 7
^ 异或运算
6 ^ 3 = 5
110
^011
----------
101 = 5
~ 反码 ~6 = ‐7
注:位运算是直接对二进制进行运算。
最有效的运算出2*8等于几---------->2<<3
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。