如果你想了解以下 位运算符的话我想你来对了地方
& ^ | ~ << >>
首先明确位运算符都是在二进制位上运算的
先讲比较简单的<< >>(有些人可能认为这个最难以理解 包括我)
后来我陡然一时想到了十进制
左移“<<”
右移“>>”
十进制
10左移三位就是乘以10的3次方=10000
10右移三位就是除以10的3次方=0.01
类比一下
1的二进制左移3就是乘以2的3次方也就是8
64的二进制右移3就是除以2的3次方也就是8
看下图
按位与“&”
同位相等并且都是1 则取1否则取0 同1为1
按位或“|”
同位置有1则是1否则为0 有1为1
按位异或“^”
同位 相同为0不同为1
按位取反“~”
同位取反
注意得出来的是补码
比如c=~b 得出来的是c的反码
为了简洁我取二进制前4位和后4位
如下图