[問題] UNION
有一個整數轉bit pattern的問題想問問
這是程式碼
struct unit
{
unsigned a0:1;
unsigned a1:1;
unsigned a2:1;
unsigned a3:1;
unsigned a4:1;
unsigned a5:1;
unsigned a6:1;
unsigned a7:1;
};
union unionbit{
int value;
struct unit bit;
};
int main ()
{
unionbit u;
scanf("%d",&u.value);
printf("%d%d%d%d%d%d%d%d",u.bit.a7,u.bit.a6,u.bit.a5,u.bit.a4,u.bit.a3,u.bit.a2,u.bit.a1,u.bit.a0);
system("pause");
return 0;
}
我想問的是 為什麼union裡面直接把struct裡的東西擺進去 而不用struct
出來的答案就不是我要的(亂七八糟的答案) 不是讓int 跟 unsigned 共用address嗎??
感覺跟再宣告一個struct 擺進去意思一樣阿= =
還有如果我要八個bit 就一定要像上面在struct裡面宣告八個unsigned 嗎
有辦法一行解決嗎? 謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.199.166
→
11/13 02:05, , 1F
11/13 02:05, 1F
→
11/13 02:18, , 2F
11/13 02:18, 2F
※ 編輯: honamida 來自: 122.117.199.166 (11/13 02:19)
→
11/13 03:31, , 3F
11/13 03:31, 3F
→
11/13 15:16, , 4F
11/13 15:16, 4F
討論串 (同標題文章)