Bit field Access

#include < stdio.h >

int main()
{
  struct Bits
 {
  unsigned int  a0:1;
  unsigned int  a1:1;
  unsigned int  a2:1;
  unsigned int  a3:1;
  unsigned int  a4:1;
  unsigned int  a5:1;
  unsigned int  a6:1;
  unsigned int  a7:1;

  unsigned int  a8:1;
  unsigned int  a9:1;
  unsigned int  a10:1;
  unsigned int  a11:1;
  unsigned int  a12:1;
  unsigned int  a13:1;
  unsigned int  a14:1;
  unsigned int  a15:1;
 };

 union ShortBianry{
  unsigned short value;
  struct Bits binaryMode;
 }test;

 scanf("%d",&test.value);

 printf("%d%d%d%d_%d%d%d%d_%d%d%d%d_%d%d%d%d\n"
   ,test.binaryMode.a15
   ,test.binaryMode.a14
   ,test.binaryMode.a13
   ,test.binaryMode.a12
   ,test.binaryMode.a11
   ,test.binaryMode.a10
   ,test.binaryMode.a9
   ,test.binaryMode.a8
   ,test.binaryMode.a7
   ,test.binaryMode.a6
   ,test.binaryMode.a5
   ,test.binaryMode.a4
   ,test.binaryMode.a3
   ,test.binaryMode.a2
   ,test.binaryMode.a1
   ,test.binaryMode.a0);

 printf("%d",test.value);
return 0 ;
}

NOTE :
1. short 為16 bits其實是 depend on machine
2 .unsigned int : 0 ; 可以用來作 alignment boundary 調整後面的起始位置至少是1 byte, 由pack定義與compiler決定, vc++內定是4 byte).
3. 需要注意Big-Endian和Little-Endian

您可以使用一些 HTML 標記,例如 <b>, <i>, <a>