📜  C# 位运算 - C# (1)

📅  最后修改于: 2023-12-03 15:13:50.457000             🧑  作者: Mango

C# 位运算

位运算是处理二进制数据时非常有用的运算方式。在C#中,我们可以使用位运算符来执行位运算操作。本文将介绍C#中的位运算及其用法。

位运算符

C#中的位运算符包括以下内容:

| 运算符 | 描述 | | ------ | ------------------------ | | & | 按位与 | | | | 按位或 | | ^ | 按位异或 | | ~ | 按位取反 | | << | 左移运算符(左移n位) | | >> | 右移运算符(右移n位) |

按位与(&)

按位与运算符(&)将两个操作数的每个位进行比较,如果两个操作数的对应位都是1,则结果为1,否则为0。

例如:

int a = 5;  //二进制表示为101
int b = 3;  //二进制表示为011
int c = a & b;  //c的二进制表示为001,十进制表示为1
按位或(|)

按位或运算符(|)将两个操作数的每个位进行比较,只要其中一个操作数的对应位是1,则结果为1,否则为0。

例如:

int a = 5;  //二进制表示为101
int b = 3;  //二进制表示为011
int c = a | b;  //c的二进制表示为111,十进制表示为7
按位异或(^)

按位异或运算符(^)将两个操作数的每个位进行比较,如果两个操作数的对应位只有一个是1,则结果为1,否则为0。

例如:

int a = 5;  //二进制表示为101
int b = 3;  //二进制表示为011
int c = a ^ b;  //c的二进制表示为110,十进制表示为6
按位取反(~)

按位取反运算符(~)将操作数的每个位进行取反操作,即0变成1,1变成0。

例如:

int a = 5;  //二进制表示为101
int b = ~a;  //b的二进制表示为11111111111111111111111111111010,十进制表示为-6
左移位(<<)

左移运算符(<<)将操作数的所有位左移指定的数量,即在右端添加零。

例如:

int a = 5;  //二进制表示为101
int b = a << 2;  //b的二进制表示为10100,十进制表示为20
右移位(>>)

右移运算符(>>)将操作数的所有位右移指定的数量,即在左端添加零。

例如:

int a = 5;  //二进制表示为101
int b = a >> 2;  //b的二进制表示为1,十进制表示为1
结论

位运算在处理二进制数据时非常有用。本文介绍了C#中的位运算符及其用法,包括按位与(&),按位或(|),按位异或(^),按位取反(~),左移位(<<)和右移位(>>)。要在C#中使用位运算符,只需掌握这些运算符及其用法。