C语言结构位域

位域

位域 就是在C语言结构体中,节约内存而使用的一种方法。这种方法可以明确你使用内存空间的位数,以达到解决内存的目的。

//安位数重叠 2 + 4 + 6 = 12位, 两个字节为16位,所以两个字节就可以存储了,但类型是int型,在64位系统中,int是4个字节,4*8=32位.
        struct MyStruct{
        int a : 2;//
        int b : 4;
        int c : 6;
        };
        //下方的结构体位数是30+4 = 34位,按int 类型重叠,一个int类型为4个字节32位,所以需要两个int类型的存储空间,所以总共的位数是8位。
        struct MyStruct1{
        int a : 30;//
        int b : 4;
        };
  • 在位域的存储过程中,不能够产生越位溢出。如果溢出,那么将自动截取
  • 当位数为1时,那么它表示的取值范围0-1
    • 当它赋值为2时,2的二进制表示1 0,那么自动截取后面的一位,得0
    • 当它赋值为3时,2的二进制表示1 1,那么自动截取后面的一位,得1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值