私自身高レベルのプログラマーであるため、ビット単位の操作に苦労しています。私が達成しようとしていることが実行可能であることを願っていますか?
符号なしの 8 ビット整数が 1 つあるとします。これは任意の値にすることができます。0xe4
(11100100) と(10100101)の 2 つの例を見てみましょう0xa5
。
ハードウェアは、これらを 4 つのチャンク(11 10 01 00 と 10 10 01 01 ) として解釈します。
純粋な C で 3 つのメソッドを記述しようとしています。
- すべての00 チャンクを 01 チャンクに置き換えます。(結果: 11 10 01 01 および 10 10 01 01)
- すべての01 チャンクを 10 チャンクに置き換えます。(結果: 11 10 10 10 および 10 10 10 10)
- 10 チャンクすべてを 11 チャンクに置き換えます。(結果: 11 11 11 11 および 11 11 11 11)
ビット置換方法を検索しようとしましたが、この特定の要件を解決するために曲げることはできませんでした。どこから始めればよいですか?