达内LOGO和北京达内网址达内科技培训项目:Java培训 3G培训 Android培训 软件测试培训北京达内服务电话
IT培训
C 学习笔记之<位的另用>

  1

  i 《 2 + 1; //等价 i 《 (2 + 1);

  i 《 2 + 1; //等价 i 《 (2 + 1);

  key point 2: ~、&、^和|的优先级

  最高~,&,^,|最低

  i ^ j & ~k; //等价 i ^ (j & (~k));

  i ^ j & ~k; //等价 i ^ (j & (~k));

  key point 3:

  1.位的设置 [惯用法]

  i |= 1 《 j; //sets bit j

  i |= 1 《 j; //sets bit j

  2.位的清除 [惯用法]

  i &= ~(1 《 j); //clears bit j

  i &= ~(1 《 j); //clears bit j

  3.位的测试

  [惯用法]

  if (i & 1 《 j); //tests bit j

  if (i & 1 《 j); //tests bit j

  4.修改位域和获取位域

  //store j in bits 4-6

  j = (i & ~0x0070) | (j 《 4);

  //retrieves bits 4-6

  j = (i 》 4) & 0x0070;

  //store j in bits 4-6 j = (i & ~0x0070) | (j 《 4); //retrieves bits 4-6 j = (i 》 4) & 0x0070;

  key point 4:

  位域的存储

  struct S{

  unsigned int a: 4;

  unsigned int : 0;

  unsigned int b: 8;

  }

  struct S{ unsigned int a: 4; unsigned int : 0; unsigned int b: 8; } 假设存储单元是8位长的,编译器会给a分配4位,接着跳过余下的4位到下一个存储单元,然后给成员b分配8位。

苏州软件工程师培训
http://www.sztarena.org/

客服系统