首頁  >  文章  >  後端開發  >  在C#中將BitArray中的所有位元值取反

在C#中將BitArray中的所有位元值取反

PHPz
PHPz轉載
2023-08-24 14:05:02777瀏覽

在C#中將BitArray中的所有位元值取反

A BitArray is a collection of Boolean values represented as a series of 1's and 0's. It is often used to store and manipulate binary data efficiently. In C#, the ##BitArray, the ##BitArray, the # class is part of the System. Collections namespace, and it allows you to manipulate the individual bits in the array using bitwise operators.

反轉位數組中的所有位元值

在C#中,要反轉BitArray中的所有位元值,可以使用異或(XOR)運算子(^)與數字1一起使用。此運算子在比較的位元不同時傳回值1,如果它們相同則傳回值0。透過將此運算子應用於BitArray中的每個位,可以反轉所有位元值。

Example 1

的中文翻譯為:

範例1

#The following example demonstrates how to invert all bit values in a BitArray in C

#演算法

  • 步驟 1 - 建立一個新的 BitArray 來儲存反轉的值。

  • 步驟 2 - 迴圈遍歷原始 BitArray 中的每個位元。

  • 步驟 3 − 使用位元求反運算子(~)反轉每個位元的值。

  • 步驟 4 - 將反轉的值儲存在新的 BitArray 中。

  • 第5步 - 傳回新的BitArray。

  • using System;
    using System.Collections;
    class Program{
       static void Main(string[] args){
          // Create a new BitArray with some initial values
          BitArray bits = new BitArray(new[] { true, false, true, false });
    
          // Invert all the bit values using XOR with 1
          for (int i = 0; i < bits.Length; i++){
             bits[i] ^= true;
          }
    
          // Print the inverted bit values
          for (int i = 0; i < bits.Length; i++){
             Console.Write(bits[i] ? "1" : "0");
          }
          Console.ReadLine();
       }
    }
    
輸出

當你執行上面的程式碼輸出時,這個輸出對應於原始 BitArray(1010)的反轉位元值。

0101

Example 2

的中文翻譯為:

範例2

下面的範例示範了在C#中反轉BitArray中的所有位元值

演算法

  • Step 1 − Create a BitArray object with the desired size.

  • #第二步 - 循環遍歷BitArray中的每個索引。

  • 步驟 3 - 使用 BitArray.Set 方法將目前索引處的值取反,參數為索引和目前索引的取反值。

  • using System;
    using System.Collections;
    class Program {
       static void Main(string[] args) {
          int size = 8;
          BitArray bits = new BitArray(size);
          for (int i = 0; i < size; i++) {
             bits[i] = (i % 2 == 0);
          }
          Console.WriteLine("Before inversion:");
          PrintBits(bits);
          InvertBits(bits);
          Console.WriteLine("After inversion:");
          PrintBits(bits);
       }
       static void InvertBits(BitArray bits) {
          for (int i = 0; i < bits.Count; i++) {
             bits.Set(i, !bits[i]);
          }
       }
       static void PrintBits(BitArray bits) {
          for (int i = 0; i < bits.Count; i++) {
             Console.Write(bits[i] ? "1" : "0");
          }
          Console.WriteLine();
       }
    }
    
輸出

Before inversion:
01010101
After inversion:
10101010

結論

在C#中,將BitArray中的所有位元值取反是一個簡單的任務,可以使用異或運算子與值1來完成。這種技術在處理二進位資料時非常有用,可以幫助您有效率地操作數組中的各個位元。

以上是在C#中將BitArray中的所有位元值取反的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除