首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

位域有关问题

2012-04-18 
位域问题C/C++ code#include stdio.h#include string.htypedef struct AA{int b1:5int b2:2}AAint

位域问题

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

热点排行