はじめましてmaruhaと申します。 どうぞよろしくお願いいたします。 早速質問なのですが、 32ビット変数の使い方をご教授いただきたく思っております。 1バイト配列をそれぞれシフトし、32ビットのデータにしたいのですが、 以下の記述で問題ないでしょうか? -- unsigned long uLData; //グローバル unsigned int uIData; //グローバル unsigned char Data[4]; Data[3] = 0xff; Data[2] = 0xff; Data[1] = 0xff; Data[0] = 0xff; uLData = (Data[3] << 24) + (Data[2] << 16) + (Data[1] << 8) + Data[0]; ulData = (Data[3] << 24) + (Data[2] << 16) + (Data[1] << 8) + Data[0]; -- sprintf、sizeofで確認すると、 ・uLData 値 = 0x0000ffff サイズ= 0 ・uIData 値 = 0x0000ffff サイズ= 4 と上位16ビットが削れています。 値が0xffffffffになると思っていたのですが 何がダメなのでしょうか?? 環境はHEW3を使用しています。 ご教授のほどよろしくおねがいいたします。。