2 つの 4 ビット 16 進値 A、B があり、A を MSD、B を LSD で 8 ビット値を作成したい:
これは私の試みです:
uint8_t X = (A << 4) & (B);
値を取得していますが、それが正しいかどうかはわかりません。
これは正しい方法ですか?
2 つの 4 ビット 16 進値 A、B があり、A を MSD、B を LSD で 8 ビット値を作成したい:
これは私の試みです:
uint8_t X = (A << 4) & (B);
値を取得していますが、それが正しいかどうかはわかりません。
これは正しい方法ですか?
次のようにする必要があります。
uint8_t X = (A << 4) | (B);
^^^
これは、ビットごとのAND ( ) ではなく、ビットごとのOR ( |
) で 2 つの値を結合する必要があるためです。&
ビットごとの OR を使用してニブル値を組み合わせる同様の例については、前の質問に対するこの回答を参照してください。