Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การดำเนินการ OR แบบบิต (Bitwise OR) ระหว่างองค์ประกอบ BitArray ใน C#

ภาพรวม

เมธอด BitArray.Or(BitArray) ดำเนินการ OR แบบบิตระหว่างบิตแต่ละตำแหน่งของ BitArray ปัจจุบันกับ BitArray ที่ระบุ คืนค่า IEnumerable ของผลลัพธ์ (ไม่แก้ไขอาร์เรย์ต้นทาง)

ตัวอย่าง: Bitwise OR ระหว่าง BitArray สองตัว

using System;
using System.Collections;

public class Demo
{
    public static void Main()
    {
        BitArray arr1 = new BitArray(5);
        BitArray arr2 = new BitArray(5);
        arr1[0] = false;
        arr1[1] = false;
        arr2[0] = false;
        arr2[1] = true;
        Console.WriteLine("BitArray1 elements...");
        foreach (bool res in arr1)
        {
            Console.WriteLine(res);
        }
        Console.WriteLine("\nBitArray2 elements...");
        foreach (bool res in arr2)
        {
            Console.WriteLine(res);
        }
        Console.WriteLine("\nBitwise OR operation...");
        IEnumerable demoEnum = arr1.Or(arr2);
        foreach(Object ob in demoEnum)
        {
            Console.WriteLine(ob);
        }
    }
}

ผลลัพธ์

BitArray1 elements...
False
False
False
False
False
BitArray2 elements...
False
True
False
False
False
Bitwise OR operation...
False
True
False
False
False

คำอธิบายเพิ่มเติม

  • ตารางความจริง OR: false|false=false, false|true=true, true|false=true, true|true=true
  • Or() คืนค่า IEnumerable (lazy evaluation) ต้องวนลูปจึงจะคำนวณจริง
  • BitArray ทั้งสองต้องมี Length เท่ากัน มิฉะนั้นจะโยน ArgumentException
  • เมธอดที่เกี่ยวข้อง: And() (AND), Xor() (XOR), Not() (NOT/กลับบิต)
  • BitArray เหมาะสำหรับการคำนวณบิตขนาดใหญ่ เช่น bitmap, flags, bitset