C++ コンソールですが、usigned intに2の補数のバイナリが入っており、singed intにキャストしてもマイナスになりません。
コードは以下のとおりです。
MSGbuff.adwParametersは構造体メンバでUINT32型です。
何が問題でしょうか。
「以下ソース」
int buff;
buff = (signed int)MSGbuff.adwParameters[0];
printf("\r%d", buff);
fflush(stdout);
連続データですのでやや不一致があるかも知れませんが、
-9130のはずのものが、56407当たりの数字になっています。
printfで %xで確認すると0xDC49ですので-9100辺りのバイナリなので、キャストすればマイナスになるはずかと思いますがならないです。
回答3件
あなたの回答
tips
プレビュー