位域有关问题

位域问题
C/C++ code
#include <stdio.h>
#include <string.h>

typedef struct AA
{
    int b1:5;
    int b2:2;
}AA;

int main(void)
{
    AA aa;
    char cc[100];
    strcpy(cc,"0123456789abcdefghijklmnopqrstuvwxyz");
    memcpy(&aa, cc, sizeof(AA));

    printf("%d %d\n",aa.b1, aa.b2);

    return 0;
} 


经过strcpy和memcpy后,aa的4个字节所存放的值是: 
0,1,2,3的ASC码,即00110000,00110001,00110010,00110011 (这是在内存中的排序顺,地址一次增加)
所以,最后一步:显示的是这4个字节的前5位,和之后的2位 
分别为:10000,和01 ,为什么前5位是10000?

------解决方案--------------------
00110000,低5位10000,然后两位是01,有什么问题?
------解决方案--------------------
前5位,即第一个字节的前5位。 从右往左5为,整合10000