Advertisement

C语言位操作

阅读量:

在某些情况下,存储单个信息并不需要消耗一个完整的字节,仅需使用二进制中的一个或多个位即可满足需求。若继续采用结构类型进行定义,则会导致内存资源的冗余占用。
为解决这一问题,C语言特别引入了位段类型。

位段的基本概念与定义

所谓位段类型,是一种具有特殊性质的结构类型,其所有成员均以二进制位作为单位来设定长度,并将这些成员称为位段。
例如,CPU的状态寄存器可以通过位段类型进行如下定义:

复制代码
 struct status

    
 {
    
     unsigned sign:1;/*符号标志*/
    
     unsigned zero:1;/*零标志*/
    
     unsigned carry:1;/*进位标志*/
    
     unsigned parity:1/*奇偶溢出标志*/
    
     unsigned half_carry:1;/*半进位标志*/
    
     unsigned negative:1; /* 减标志*/
    
 } flags;
    
    
    
    
    AI写代码cpp
复制代码
 struct data{

    
     unsigned char f1:1;
    
     unsigned char f2:2;

全部评论 (0)

还没有任何评论哟~