在C#中,没有内置的BitSet类,但是你可以使用位操作符(如&、|、^等)来实现位掩码操作
using System;
class Program
{
static void Main()
{
// 定义两个整数值,用于演示位掩码操作
int value1 = 5; // 二进制表示:0101
int value2 = 3; // 二进制表示:0011
// 按位与操作
int andResult = value1 & value2; // 结果为1,二进制表示:0001
Console.WriteLine("按位与操作结果: " + andResult);
// 按位或操作
int orResult = value1 | value2; // 结果为7,二进制表示:0111
Console.WriteLine("按位或操作结果: " + orResult);
// 按位异或操作
int xorResult = value1 ^ value2; // 结果为6,二进制表示:0110
Console.WriteLine("按位异或操作结果: " + xorResult);
// 按位非操作
int notResult = ~value1; // 结果为-6,二进制表示:11111111 11111111 11111111 11111010(这是补码形式)
Console.WriteLine("按位非操作结果: " + notResult);
}
}
此外,你还可以使用System.Collections.BitArray
类来表示一个位数组。这个类提供了一些方法来操作位数组,例如设置、清除和切换位。下面是一个简单的示例:
using System;
using System.Collections;
class Program
{
static void Main()
{
// 创建一个包含8位的BitArray
BitArray bitArray = new BitArray(8);
// 设置第3位为1
bitArray.Set(2, true);
// 输出BitArray的内容
Console.WriteLine("BitArray的内容: ");
foreach (bool bit in bitArray)
{
Console.Write(bit ? "1" : "0");
}
Console.WriteLine();
// 切换第3位
bitArray.Not(2);
// 输出切换后的BitArray内容
Console.WriteLine("切换后的BitArray内容: ");
foreach (bool bit in bitArray)
{
Console.Write(bit ? "1" : "0");
}
Console.WriteLine();
}
}
这个示例将创建一个8位的BitArray,并设置第3位为1。然后,它会输出BitArray的内容,接着切换第3位,并再次输出BitArray的内容。