C语言结构体位字段问题

问题遇到的现象和发生背景

img

我的解答思路和尝试过的方法

我认为在内存中,short16字节储存分为 4 5 7,分别值为 2 3 0。
那么在16位中应该是 0010 0001 1000 0000。
转换为short型10进制应该为8576,但是解答如下

img

我想要达到的结果

我不理解程序的思路,希望能帮我解答疑惑

0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0
x86是小端模式,低字节存放在低地址