[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)
}
}