[H8-ML(6014)] H8 32ビット変数の使い方について
From: maruha <fa0305dv1.1@xxxxxxxxxxxxxxx>
Date: 2006年08月04日(金)10時34分23秒
はじめまして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を使用しています。

ご教授のほどよろしくおねがいいたします。。


スレッド概略
[表示中](起点)
 ├[6015(1)]
 ├[6016(2)]
 ├[6017(3)]
 ├[6020(4)]
 └[6022(5)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]