0

私は Codewarrior で作業しており、ビット単位の左シフト (>>) を「char-casted」int 変数に実行しようとしています。つまり、次のようになります。

int checksum=0x017b;

char checksum_H=(char) checksum >>8; //higher part of checksum
char checksum_L=(char) checksum;     //lower part of checksum 

問題は、実際には の正しい値を取得できますchecksum_Lが、の場合checksum_Hは 0x00 を取得することです....そして、">>" の代わりに ">" を使用してシフトを実行しようとした場合にのみ、0x01 の正しい結果が得られます。 ..

なぜこれが起こっているのか、誰か分かりますか?

4

1 に答える 1