2022-08-24【c#】位运算

位运算符 >> ^ ~ & |我的世界+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;

为什么?


你可能感兴趣的:(2022-08-24【c#】位运算)