質問

1つのバイトのデータに保存されている2つの異なる値を処理する正しい方法は何ですか。私はそれぞれ独自のデータを含む2つのニブルを含むバイトを持っています。トップニブルを読み、ボトムのニブルを自分の変数に読みたいです。

11110000 =ハイ4ビットスロットル、読み取ります $throttle, 、および0から15までの値である必要があります。00001111 =低4ビットブレーキ、読み取ります $brake, 、および0から15までの値である必要があります。

忘れないで, 、ドライバーはスロットルとブレーキを同時に適用できるので、次のような値が得られる場合があります 11000111. 。私自身は、高4ビットのソリューションを思いつきましたが、それは低い4ビットを邪魔にならないように押し出すのと同じくらい簡単です >> (ビットシフト右)オペレーターは4回。 $Throttle = $ThrBrk >> 4, 、しかし、下の4ビットの1つの動きでそれを行うことはできないので、ソースコードではちょっと悪いように見えます。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top