【初心者歓迎】C/C++室 Ver.48【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0692デフォルトの名無しさん
2008/02/15(金) 01:55:49読み込んできたデータを次の関数で共用体に格納して、bit単位でいじってるんですが、どうも上手くとれません。
いろいろ省略していますが、以下のような感じです。
テストデータ(バイナリ)
11111111 11111111 11111111
共用体
union UNION{
unsinged char data[3];
struct {
unsinged short element1 : 8;
unsinged short element2 : 3;
unsinged short element3 : 5;
unsinged short element4 : 1;
unsinged short element5 : 7;
}FILED;
}
処理
UNION A;
read (fd , A.data , 3):
printf("%d\n" , A.FILED.elemnt1); ←255が出力される
printf("%d\n" , A.FILED.elemnt2); ←7が出力される
printf("%d\n" , A.FILED.elemnt3); ←31が出力される
printf("%d\n" , A.FILED.elemnt4); ←何故か0が出力される
printf("%d\n" , A.FILED.elemnt5); ←127が表示される
4番目の要素が1と表示されるません。
これはなんででしょう?
■ このスレッドは過去ログ倉庫に格納されています