0

プログラムの開発にCを使用していますが、サンプルコードから見つけました

unHiByte = unVal >> 8;

これは何を意味するのでしょうか??もしunVal = 250unHiByteの値は??

私はこれと本当に混乱しています..助けてください..

前もって感謝します..

4

4 に答える 4

3

プログラミングの「>>」はビット演算です。操作 >> は右シフト操作を意味します。したがって、unVal >> 8 は、unVal を 8 ビット右にシフトすることを意味します。ビットを右にシフトすることは、値を 2 で除算することと解釈できます。

したがって、unHiByte = unval >> 8 は、unHiByte = unVal/(2^8) (unVal を 2 で 8 回割る) を意味します。

于 2013-10-03T07:37:35.310 に答える
0

シフト演算子自体には触れずに (既に回答済みであるため)、ここでは unVal が上位バイト (上位 8 ビット) と下位バイト (下位 8 ビット) を持つ 2 バイト変数であると仮定しています。その意図は、上位 8 ビットのみを生成し、下位ビットを破棄することによって生成される値を取得することです。

ただし、シフト演算子は、本/チュートリアルで簡単に学習できるはずであり、おそらく誰かが質問に反対票を投じた理由でした。

于 2013-10-03T07:44:25.950 に答える
0

>>ビット単位の右シフトです。

ビットで動作します。と。unHiByte = unVal >> 8;_unVal=250

そのバイナリ形式は11111010

右シフトとは、ビットを右にシフトすることです。1111 1010したがって、を右に 8 桁シフトすると、 が得られ0000 0000ます。

注:>>の左側の数値を2^( の右側の数値>>)で割ることにより、右シフト操作の結果を簡単に判断できます。

だから、250/28= 0

于 2013-10-03T07:48:19.960 に答える