0

おそらく簡単な質問がありますが、理解できないようです。

シリアル ストリームを送信するデータロガー用のシリアル パーサーを作成しています。製品のドキュメントの下に計算が記載されていますが、私には理解できません。

Lateral = Data1 And 0x7F + Data2 / 0x100
If (Data1 And 0x80)=0 Then Lateral = -Lateral

とはどういう意味ですかData1? 0x7fであることはわかってい7Fますが127、それ以外に And ステートメントとの組み合わせがわかりません。

本当の式はどのように見えるでしょうか?

4

2 に答える 2

1

ビットごとの AND --両方の入力で対応するビットが設定されている場合にのみ、出力のビットが設定されます。

タグは C で作業していることを示しているため、& 演算子を使用してビットごとの AND を実行できます。

(なお、0x7F は 01111111、0x80 は 10000000 を 2 進数で表すので、これらとの AND は、それぞれバイトの下位 7 ビットを抽出し、上位ビットを抽出することに相当します。)

于 2013-03-22T07:54:29.357 に答える
0

最初の文 Lateral = Data1 And(&) 0x7f + Data2/ 0x100

Data1(データと 0x7f)の大きさを取り、それに値を追加することを意味しますData2/256

2 番目の文で符号 odData1を確認し、同じものを に割り当てLateralます。

于 2013-03-22T08:08:23.430 に答える