C# 位运算符整理攻略
概述
在C#中,位运算符可以用于对二进制位进行逻辑运算。C#中的常见位运算符有:
- 按位与(&)
- 按位或(|)
- 按位异或(^)
- 取反(~)
- 左移(<<)
- 右移(>>)
按位与(&)
按位与运算符将两个数的二进制位进行比较,如果两个二进制位都为1,则该位的结果为1,否则为0。
示例代码:
int a = 5; // 二进制表示为:00000101
int b = 3; // 二进制表示为:00000011
int c = a & b; // c的二进制表示为:00000001,即1
Console.WriteLine(c);
输出结果为:1
按位或(|)
按位或运算符将两个数的二进制位进行比较,如果两个二进制位中有至少一个为1,则该位的结果为1,否则为0。
示例代码:
int a = 5; // 二进制表示为:00000101
int b = 3; // 二进制表示为:00000011
int c = a | b; // c的二进制表示为:00000111,即7
Console.WriteLine(c);
输出结果为:7
按位异或(^)
按位异或运算符将两个数的二进制位进行比较,如果两个二进制位不相同,则该位的结果为1,否则为0。
示例代码:
int a = 5; // 二进制表示为:00000101
int b = 3; // 二进制表示为:00000011
int c = a ^ b; // c的二进制表示为:00000110,即6
Console.WriteLine(c);
输出结果为:6
取反(~)
取反运算符将一个数的二进制位全部取反,即将0变为1,将1变为0。
示例代码:
int a = 5; // 二进制表示为:00000101
int b = ~a; // b的二进制表示为:11111010,即-6
Console.WriteLine(b);
输出结果为:-6
左移(<<)
左移运算符将一个数的二进制位向左移动若干位,低位补0。移动的位数由运算符右侧的数值确定。
示例代码:
int a = 5; // 二进制表示为:00000101
int b = a << 2; // b的二进制表示为:00010100,即20
Console.WriteLine(b);
输出结果为:20
右移(>>)
右移运算符将一个数的二进制位向右移动若干位,高位补0。移动的位数由运算符右侧的数值确定。
示例代码:
int a = 20; // 二进制表示为:00010100
int b = a >> 2; // b的二进制表示为:00000101,即5
Console.WriteLine(b);
输出结果为:5
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 位运算符整理 - Python技术站