一.基础位运算
1.<<
左移操作符,使二进制向左边移动指定位数,同时在其右侧补0
00000000 00000000 00000000 00000001 // 1的二进制
1 << 2
00000000 00000000 00000000 00000100
4
左移操作符可以用来提高乘法的效率:2*n -> 1<<n,x*2*n -> x << n
2.>>
右移与左移的操作相反,使二进制向右边移动指定位数。
右移分为逻辑右移和算数右移:算数右移在其左侧补符号位,逻辑右移在其左侧补0.
// 算数右移
11111111 11111111 11111111 11111011
11111111 11111111 11111111 11111101
// 逻辑右移
00000000 00000000 00000000 00000101
00000000 00000000 00000000 00000010
3.~
取反操作符,使二进制的每一位变成其相反数。0变为1,1变为0.
// 取反操作
11111111 11111111 11111111 11111111
00000000 00000000 00000000 00000000
4.逻辑与&
有0则0
010
111
——
010
5.逻辑或|
有1则1
010
111
——
111
6.异或^
异或有两种解释方法:
相同为0,不同为1
010
111
——
101
无进位相加
011
001
——
010 最末尾1+1是2,二进制表示10,无进位即只保留那个0.
二.基础位运算算法
1.判断一个数的二进制的第x位是0还是1
首先一个正数的二进制位从右向左第一位是第0位,依次类推,位数范围为[0,31]
&nbs

最低0.47元/天 解锁文章
1633

被折叠的 条评论
为什么被折叠?



