私は32バイトのバイト配列を持ち、各バイト(0から3)の最初の4ビットは1から128までの数字のセットまたはセットされていない状態を表します。たとえば、If私は3を与えられました、私はビット2を配列の最初のバイトにセットする必要があります。私に数字9が与えられていれば、配列の3番目のバイトのビット0を設定する必要があります。私が持っている問題は、C#でこれを行う賢明な方法を見つけることです。私はそれを数学的に行う簡単な方法がなければならないと確信していますが、これまで方法を見つけることができませんでした。私はこの頭の上で私の頭を傷つけますが、誰かが助言を与えることができるかどうかは分かりました。与えられた回答に基づいてC#を使用してバイト配列のビットを設定する
---------更新-------------------
、私は次の関数を生産しています。これはまさに私が必要とするものです。私は私の質問で私が必要としたことを明確にしていないかもしれませんが、適切なコードを見つけるために十分な助言が私に与えられました。 bytes
があなたのバイト配列である
// outputNumber = number passed into this function
byte[] bytes = new byte[32];
int bit = (outputNumber - 1) % 4;
byte byteSetting = (byte)(1 << bit);
bytes[(outputNumber - 1)/4] |= byteSetting;
この回答は、固定バイトではなく配列内のさまざまなバイトでビットを設定する必要があることを考慮して、最も役立ちました。 – Retrocoder