5

バイト配列を大きなビットフィールドとして扱うことを可能にする組み込みクラスまたは.NETに何かがありますか?

4

1 に答える 1

7

BitArrayクラスを見てください。

以下は、バイト配列を使用するときに何が起こっているかを説明する例です。

byte[] myBytes = new byte[5] { 1, 2, 3, 4, 5 };
BitArray myBA3 = new BitArray( myBytes );

Console.WriteLine( "myBA3" );
Console.WriteLine( "   Count:    {0}", myBA3.Count );
Console.WriteLine( "   Length:   {0}", myBA3.Length );
Console.WriteLine( "   Values:" );
PrintValues( myBA3, 8 );

public static void PrintValues( IEnumerable myList, int myWidth )
{
   int i = myWidth;
   foreach ( Object obj in myList )
   {
      if ( i <= 0 )
      {
         i = myWidth;
         Console.WriteLine();
      }
      i--;
      Console.Write( "{0,8}", obj );
   }
   Console.WriteLine();
}

このコードは、次の出力を生成します。

 myBA3
    Count:    40
    Length:   40
    Values:
     Bit0   Bit1    Bit2    Bit3    Bit4    Bit5    Bit6    Bit7
     True   False   False   False   False   False   False   False
     Bit8   Bit9    Bit10   Bit11   Bit12   Bit13   Bit14   Bit15 ... and so on
    False    True   False   False   False   False   False   False
     True    True   False   False   False   False   False   False
    False   False    True   False   False   False   False   False
     True   False    True   False   False   False   False   False
于 2011-01-21T16:33:04.207 に答える