这是个填空题,第二个空不清楚,得到解答。

img


这是个c语言,有关于小端序的题,第二个空不明白,希望得到帮助,写写推断过程

首先union存最大长度的成员变量,2字节,第一个字节和第二个字节按照地址增加顺序,分别对应t[0],t[1]
当赋值给t[1]时,后面一个字节赋值为10000100,(因为0x21=00100001,小端需要将这个倒过来,变成低位对应低地址)
那么s是16个bit中的第11-15,也就是后8个bit中的第3-7位数字,此时对应的值位00010,按照小端法它就是8

这个涉及到大端小端系统的知识点
可以看下这文章
https://blog.csdn.net/favory/article/details/4441361

             t[1]=0x21                      t[0]=0x00
  +---------------------------+   +---------------------------+
  |                           |   |                           |
  7   6   5   4   3   2   1   0   7   6   5   4   3   2   1   0
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
      ^               ^   ^                   ^   ^           ^
      |               |   |                   |   |           |
      +---------------+   +-------------------+   +-----------+
         timber.s=8            timber.m=16         timber.h=0