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