如何使用C#的BitSet進(jìn)行位運(yùn)算

c#
小樊
95
2024-09-16 09:56:09

在C#中,沒(méi)有內(nèi)置的BitSet類(lèi),但是你可以使用BitArray類(lèi)來(lái)執(zhí)行位運(yùn)算

  1. 導(dǎo)入System.Collections命名空間。
  2. 創(chuàng)建一個(gè)BitArray實(shí)例。
  3. 使用BitArray的方法和屬性執(zhí)行位運(yùn)算。

下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用BitArray進(jìn)行位運(yùn)算:

using System;
using System.Collections;

class BitSetExample
{
    static void Main()
    {
        // 創(chuàng)建兩個(gè)BitArray實(shí)例
        BitArray bitArray1 = new BitArray(new byte[] { 0b11001100 });
        BitArray bitArray2 = new BitArray(new byte[] { 0b10101010 });

        // 打印原始BitArray
        Console.WriteLine("BitArray1: " + ToBinaryString(bitArray1));
        Console.WriteLine("BitArray2: " + ToBinaryString(bitArray2));

        // 執(zhí)行按位與運(yùn)算
        bitArray1.And(bitArray2);
        Console.WriteLine("BitArray1 AND BitArray2: " + ToBinaryString(bitArray1));

        // 執(zhí)行按位或運(yùn)算
        bitArray1.Or(bitArray2);
        Console.WriteLine("BitArray1 OR BitArray2: " + ToBinaryString(bitArray1));

        // 執(zhí)行按位異或運(yùn)算
        bitArray1.Xor(bitArray2);
        Console.WriteLine("BitArray1 XOR BitArray2: " + ToBinaryString(bitArray1));

        // 執(zhí)行按位非運(yùn)算
        bitArray1.Not();
        Console.WriteLine("NOT BitArray1: " + ToBinaryString(bitArray1));
    }

    // 將BitArray轉(zhuǎn)換為二進(jìn)制字符串
    static string ToBinaryString(BitArray bitArray)
    {
        StringBuilder sb = new StringBuilder();
        foreach (bool bit in bitArray)
        {
            sb.Append(bit ? '1' : '0');
        }
        return sb.ToString();
    }
}

這個(gè)示例首先創(chuàng)建了兩個(gè)BitArray實(shí)例,然后執(zhí)行了按位與、按位或、按位異或和按位非運(yùn)算。最后,使用ToBinaryString方法將BitArray轉(zhuǎn)換為二進(jìn)制字符串,以便于查看結(jié)果。

0