[問題] big endian中bit field 的問題
各位大神好,小弟在最近的面試中碰到了這類的考題
Q:在big endian中B1.A1的值會是多少
小弟的想法是因為在little endian中會取REG_SET.B3[0]這個記憶體中的低7位,值為0x12,
所以在big endian中會取記憶體中的高7位,所以值為0x9,請問這樣的想法正確嗎
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned long u32;
typedef union{
struct{
u8 A1 :7;
u8 :1;
u8 A2 :2;
u8 A3 :1;
u8 A4 :1;
u8 A5 :4;
u16 A6;
} B1;
u32 B2;
u8 B3[4];
} REG_SET
REG_SET.B3[0] = 0x12;
REG_SET.B3[1] = 0x34;
REG_SET.B3[2] = 0x56;
REG_SET.B3[3] = 0x78;
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.247.102.147 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1672159845.A.60D.html
推
12/28 01:46,
1年前
, 1F
12/28 01:46, 1F
推
12/28 01:50,
1年前
, 2F
12/28 01:50, 2F
→
12/28 01:51,
1年前
, 3F
12/28 01:51, 3F
推
12/28 03:33,
1年前
, 4F
12/28 03:33, 4F
推
12/28 03:34,
1年前
, 5F
12/28 03:34, 5F
推
12/28 13:34,
1年前
, 6F
12/28 13:34, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章