c 언어 비트 영역

1823 단어 c
 、      
        ,             ,              。           ,  0 1     ,         。        ,      ,C            ,  “  ” “  ”。  “  ”                     ,           。        ,             。                            。
                        ,    : 
struct        { 
	     
};
          :          :     。   : 
struct bs {
	int a:8;
	int b:2;
	int c:6;
};
                   。          ,                 。  : 
struct bs {
	int a:8;
	int b:2;
	int c:6;
}data;
  data bs  ,      。    a 8 ,  b 2 ,  c 6 。               :

1.                ,       。                  ,            。                。  : 
struct bs {
	unsigned a:4
	unsigned :0 		/*  */
	unsigned b:4 	/*         */
	unsigned c:4
}
        ,a      4 , 4  0     ,b       ,  4 ,c  4 。

2.             ,                  ,        8    。

3.         ,              。           。  : 
struct k {
	int a:1
	int :2 		/* 2     */
	int b:3
	int c:2
};
         ,              ,              。


 、      
               ,      :      ·               。
int main() {
	struct bs {
		unsigned a:1;
		unsigned b:3;
		unsigned c:4;
	} bit, *pbit;

	bit.a=1;
	bit.b=7;
	bit.c=15;
	printf("%d,%d,%d/n",bit.a,bit.b,bit.c);
	pbit=&bit;
	pbit->a=0;
	pbit->b&=3;
	pbit->c|=1;
	printf("%d,%d,%d/n",pbit->a,pbit->b,pbit->c);

	return 0;
} 
            bs,     a,b,c。   bs     bit   bs       pbit。              。
   9、10、11           。(                  )   12               。 13      bit         pbit。 14         a    ,  0。 15           "&=",      : pbit->b=pbit->b&3  b     7, 3          3(111&011=011,     3)。  ,   16          "|=",    : pbit->c=pbit->c|1    15。   17               。


    :    http://hi.baidu.com/helloworld_bing/blog/item/f1a52416cc4cb84820a4e9b4.html

좋은 웹페이지 즐겨찾기