BitArray的使用

jiajiadejiali21發表於2016-11-22
BitArray類能有效的處理bool值的集合,其可以動態調整大小,而且在需要時新增二進位制位不用擔心陣列越界問題。

1.通過例項化BitArray物件可以建立BitArray,同時將陣列內的二進位制位數量傳給構造器
BitArray BitSet=new BitArray(32);
這個BitArray的32個位都被設定成false.

2.如果想將他們設定成為true,可以下面這樣例項化陣列:
BitArray BitSet=new BitArray(32,true);

3.使用位元組值的陣列來例項化BitArray
byte[]ByteSet=new byte[]{1,2,3,4,5};
BitArray BitSet=new BitArray(ByteSet);
BitSet現在包含了位元組值為1,2,3,4,5的二進位制位

二進位制位儲存在BitArray中,而且最高有效為(索引為0)在最左側的位置上。

using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;

//功能:輸出1,2,3,4的二進位制值
internal class Chapter6
{
    private static void Main()
    {
        int bits;
        string[]binNumber=new string[8];  //定義8個字元的陣列
        int binary;
        byte[] ByteSet=new byte[]{1,2,3,4,5};  //定義5個二進位制位的陣列
        BitArray BitSet=new BitArray(ByteSet);  //定義位陣列
        bits = 0;  //

        binary = 7;
        for (int i = 0; i <= BitSet.Count - 1; i++)
        {//填充陣列 
            if (BitSet.Get(i) == true)  //獲取每一位如果真賦值為1,假賦值為0
                binNumber[binary] = "1";
            else
            {
                binNumber[binary] = "0";
            }
            binary--;
            bits++;
            if (bits%8 == 0)
            {
                binary = 7;
                bits = 0;
                for (int j = 0; j <= 7; j++)
                {
                    Console.Write(binNumber[j]);
                   
                }
                Console.WriteLine();
            }
        }

    }

}

相關屬性:
Set方法為數值設定一個特殊的位
BitArray.Set(bit,value)
bit為索引,value為值(bool型別)

BitSet.SetAll(False);為所有位設定值

bitSet1.or(bitSet2)  //進行位運算(或)

bitSet.Clone() 返回一個淺層的克隆

bitSet.Copy(arrBits);  //將BitArray的內容複製給一個命名為arrBits的標準陣列