プログラムの開発にCを使用していますが、サンプルコードから見つけました
unHiByte = unVal >> 8;
これは何を意味するのでしょうか??もしunVal = 250
。unHiByteの値は??
私はこれと本当に混乱しています..助けてください..
前もって感謝します..
プログラムの開発にCを使用していますが、サンプルコードから見つけました
unHiByte = unVal >> 8;
これは何を意味するのでしょうか??もしunVal = 250
。unHiByteの値は??
私はこれと本当に混乱しています..助けてください..
前もって感謝します..
プログラミングの「>>」はビット演算です。操作 >> は右シフト操作を意味します。したがって、unVal >> 8 は、unVal を 8 ビット右にシフトすることを意味します。ビットを右にシフトすることは、値を 2 で除算することと解釈できます。
したがって、unHiByte = unval >> 8 は、unHiByte = unVal/(2^8) (unVal を 2 で 8 回割る) を意味します。
シフト演算子自体には触れずに (既に回答済みであるため)、ここでは unVal が上位バイト (上位 8 ビット) と下位バイト (下位 8 ビット) を持つ 2 バイト変数であると仮定しています。その意図は、上位 8 ビットのみを生成し、下位ビットを破棄することによって生成される値を取得することです。
ただし、シフト演算子は、本/チュートリアルで簡単に学習できるはずであり、おそらく誰かが質問に反対票を投じた理由でした。
ビットで動作します。と。unHiByte = unVal >> 8;
_unVal=250
右シフトとは、ビットを右にシフトすることです。1111 1010
したがって、を右に 8 桁シフトすると、 が得られ0000 0000
ます。
注:>>
の左側の数値を2^( の右側の数値>>
)で割ることにより、右シフト操作の結果を簡単に判断できます。
だから、250/2
8= 0