位运算符 >> ^ ~ & |我的世界+1的博客-CSDN博客位运算符>>
本人理解:位运算,基本指二进制位运算。二进制在每一位上代表一个bool值,那么一个数字其实代表的是一个bool值列表。
位运算就是对这个列表的bool值进行操作。
& 按位与
任何二进制位和0进行&运算,结果是0;和1进行&运算,结果是原值
|按位或
任何二进制位和0进行|运算,结果是原值;和1进行|运算,结果是1
^按位异或
任何相同二进制位进行^运算,结果是0;不同二进制位进行^运算,结果是1
~取反
>>右移
<<左移
使用场景:
1.做乘法运算(不考虑溢出和符号位情况)
2<<1 = 4
3<<1 = 6
4<<1 = 8
为什么?
![]()
因为,二进制,在进行二进制x2的操作,就会向前进位。就像,十进制,x10的操作,进位一样。
同理可做除法运算。
2.向下取整
任何小数 把它 >> 0可以取整
如3.14159 >> 0 = 3;
3.^运算服有个神奇的特性
如以下代码int n1 = 3; int n2 = 4; n1 ^= n2; n2 ^= n1; n1 ^= n2;
为什么?
![]()
网友评论