位运算(愉快的周末从写博客开始)
运算符(&)位与
规则:两个数二进制所有位依次比较都为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
看到同事分享的数据加密,不得不复习一下,不然忘干净了🤶