📅  最后修改于: 2023-12-03 14:40:33.100000             🧑  作者: Mango
C#提供了许多按位和移位运算符,这些运算符可用于处理二进制位。在本文中,我们将学习 C# 中可用的按位和移位运算符以及它们的用法。
按位运算符在二进制级别上操作数据。
& 运算符执行按位与运算。它比较两个操作数的每个对应的位。如果两个位都为 1,则结果为 1。否则,结果为 0。语法如下:
int result = a & b;
| 运算符执行按位或运算。它比较两个操作数的每个对应的位。如果两个位都为 0,则结果为 0。否则,结果为 1。语法如下:
int result = a | b;
^ 运算符执行按位异或运算。它比较两个操作数的每个对应的位。如果两个位不同,则结果为 1。否则,结果为 0。语法如下:
int result = a ^ b;
~ 运算符执行按位求反运算。它反转操作数中的每个位。语法如下:
int result = ~a;
移位运算符用于将二进制中的位向左或向右移动。
<< 运算符将操作数的位向左移动指定数量的位数。语法如下:
int result = a << b;
运算符将操作数的位向右移动指定数量的位数。语法如下:
int result = a >> b;
以下示例演示了使用按位和移位运算符:
using System;
class Program
{
static void Main()
{
int a = 10; // 1010
int b = 15; // 1111
//按位与运算
int and = a & b; // 1010 & 1111 = 1010
Console.WriteLine("按位与运算结果是 " + and);
//按位或运算
int or = a | b; // 1010 | 1111 = 1111
Console.WriteLine("按位或运算结果是 " + or);
//按位异或运算
int xor = a ^ b; // 1010 ^ 1111 = 0101
Console.WriteLine("按位异或运算结果是 " + xor);
// 按位求反运算
int not = ~a; // ~1010 = -(1011) = -11
Console.WriteLine("按位求反运算结果是 " + not);
// 左移运算
int leftShift = a << 2; // 1010 << 2 = 101000
Console.WriteLine("左移运算结果是 " + leftShift);
// 右移运算
int rightShift = b >> 2; // 1111 >> 2 = 0011
Console.WriteLine("右移运算结果是 " + rightShift);
}
}
输出:
按位与运算结果是 10
按位或运算结果是 15
按位异或运算结果是 5
按位求反运算结果是 -11
左移运算结果是 40
右移运算结果是 3
这里的输出结果可能与您在计算机上运行时的结果略有不同,因为输出可能受操作系统、C# 编译器的版本以及 .NET Framework 版本的影响。