关闭

《c语言从入门到精通》看书笔记——第12章 位运算

标签: c语言位运算符位段
322人阅读 评论(0) 收藏 举报
分类:
1、按位运算就是对字节或字中的实际位进行检测、设置或移位。
     位运算符
     
2、位段的概念与定义
     位段类型是一种特殊的结构类型,其所有成员的长度均是以二进制位为单位定义的,结构中的成员被称为位段。位段定义的一般形式为:
      结构 结构名
          {
               类型     变量名 1:长度;
               类型     变量名 2:长度;
               。。。
               类型     变量名 n:长度;
          }
     一个位段必须被说明是int、unsigned或signed中一种。
     如:
     struct packed_data
     {
          unsigned a:2;
          unsigned b:1;
          unsigned c:1;
          unsigned d:2;
     }data;
     这里的a.b.c.d分别占2位,1位,1位,2位。
3、位段的相关说明
     (1)因为位段类型是一种结构类型,所以位段类型和位段变量的定义,以及对位段(即位段类型中的成员)的引用均与结构体变量相同。
     (2)某一位段要从另一个字节开始存放,则在中间加一句“unsigned :0;
     (3)可以使各个位段占满一个字节也可以不占满一个字节。若不占满一个字节在末尾加上“int i;”即可。
     (4)一个位段必须存储在一个存储单元(通常为一个字节)中,不能跨两个存储单元。如果本单元不够容纳某个位段,则从下一单元开始存储该位段。
     (5)可以用“%d”、“%x”、“%u”、“%o”等格式字符,以整数形式输出位段。
     (6)在数值表达式中引用位段时,系统自动将位段转换为整形数。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14028次
    • 积分:364
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:8篇
    • 译文:0篇
    • 评论:0条
    文章分类