1バイトのデータに格納されている2つの異なる値を処理する正しい方法は何ですか。それぞれが独自のデータを含む2つのニブルを含むバイトがあります。上のニブルと下のニブルをそれぞれの変数に読み込みたいと思います。
11110000
=上位4ビットスロットル、に読み込まれ$throttle
、0〜15の値である必要があります。
00001111
=下位4ビットブレーキ、に読み込まれ$brake
、0〜15の値である必要があります。
ドライバーはスロットルとブレーキを同時にかけることができるので、のような値が得られる可能性があることを忘れない11000111
でください。私自身、上位4ビットの解決策を考え出しました。これは、下位4ビットを>>
(ビットシフト右)演算子で4回押し出すのと同じくらい簡単です。$Throttle = $ThrBrk >> 4
、しかし、下位4ビットの1つの動きでそれを行うことができないので、私のソースコードではちょっと悪いように見えます。