位运算(愉快的周末从写博客开始)

运算符(&)位与

规则:两个数二进制所有位依次比较都为1则结果位为1

3 00000011
1 00000001
00000001&00000011 = 00000001
输出 1

运算符(|)位或

规则:两个数二进制所有位依次比较一个数为1则结果位为1

3 00000011
1 00000001
00000001|00000011 = 00000011
输出 3

运算符(^)异或

规则:两个数二进制所有位依次比较两个数不同则结果位为1

3 00000011
5 00000101
00000101^00000011 = 00000110
输出 6

运算符(<<)左移

规则:换成二进制后所有位向左移,右边补0

3 00000011
3<<2 = 00001100 = 12 = 3*2*2
输出 12

运算符(>>)右移

规则:换成二进制后所有位向右移,左边边补0

7 00000111
7>>2 = 00000001 = 1 = 7/2/2(没有小数位,取整)
输出 1

看到同事分享的数据加密,不得不复习一下,不然忘干净了🤶