[C#] byte型データからbit配列を取得してループ処理で1ビット単位で処理をする

概要

byte型の1バイトの値をビット配列にして、1bit単位で処理をする。
例えば、2つのbyteデータのどの部分でbit差異が発生しているかを判断するなど。
BitArrayクラスのコンストラクタにbyte配列をセットするとビット単位をboolで判断できる。

BitArray コンストラクター (System.Collections) | Microsoft Docs

コード

using System.Collections;

public void Sample()
{
  byte bytedat = 123;   // 2進数:0111 1011
  // BitArray変換
  var bits = new BitArray(new byte[] { bytedat });
  // ループ処理
  for (int i = 7; i >= 0 ; i++){
    // bitsはi=0~7を取得すると、1101 1110 となる。どう取得するかはbitの格納仕様で判断。
    var val = (bits[i]) ? 1 : 0;   // bits[i]はboolが格納されている⇒true(1)/false(0)
  }
}