原因来自leetcode-231
位运算主要有
7种位运算符:
与&、非~、或|、异或^、右移>>、左移 << 、0填充右移>>>
与&
A&B A化为二进制,B化为二进制. 两个操作数中位都为1,结果才为1,否则结果为0
非~
非也称按位取反
或|
A|B化为二进制.两个位只要有一个为1,那么结果就是1,否则就为0
异或^
A^B化为二进制.两个操作数的位中,相同则结果为0,不同则结果为1
移位运算>>、<<、>>>.
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
计算机对应
Not对应~ Xor对应^ And对应& Or对应| Mod对应% Lsh, Rsh:全称是Left Shift和Right Shift,也就是左移和右移操作,你需要输入你要移动的位数(不能大于最大位数) RoL, RoR:全称是Rotate Left和Rotate Right,对于RoL来讲,就是向左移动一位,并将移出的那位补到最右边那位上,RoR类似。