假设值为 0xFF80 = ( 1111 1111 1000 0000 ) B15 ~ B0
- struct { unsigned char
- B8:1,
- B9:1,
- B10:1,
- B11:1,
- B12:1,
- B13:1,
- B14:1,
- B15:1,
- B0:1,
- B1:1,
- B2:1,
- B3:1,
- B4:1,
- B5:1,
- B6:1,
- B7:1;
- } BIT;
- 上面是正确的写法
- 我搞不懂为什么不是
- struct { unsigned char
- B0:1,
- B1:1,
- B2:1,
- B3:1,
- B4:1,
- B5:1,
- B6:1,
- B7:1,
- B8:1,
- B9:1,
- B10:1,
- B11:1,
- B12:1,
- B13:1,
- B14:1,
- B15:1;
- } BIT;
- 或是
- struct { unsigned char
- B15:1,
- B14:1,
- B13:1,
- B12:1,
- B11:1,
- B10:1,
- B9:1,
- B8:1,
- B7:1,
- B6:1,
- B5:1,
- B4:1,
- B3:1,
- B2:1,
- B1:1,
- B0:1;
- } BIT;
复制代码
1. 为什么是从bit field 是 B8 ~ B15 再从 B0 ~ B7? ,请问 0xFF80 值是怎么配置到 bit field 内存
2. 这跟 Big-Endian & Little-Endian 有关系吗?
3. 为什么0xFF80 是分成FF 跟 80 摆放到内存?这跟CPU有关系吗?
谢谢
[ 本帖最后由 shihyu 于 2008-1-29 23:16 编辑 ] |