#位段

作者: 践行者 | 来源:发表于2016-05-06 14:09 被阅读90次

位段

什么是位段

在大多数的计算机系统中, 一个字节是由八个更小的, 称作为位的单位组成的。位是比字节更小的单位。位只有两个值, 1 或 0 。因此, 存储在计算机存储器中的一个字节可以看成由八个二进制数字形成的串。有时, 我们希望不仅对字节进行操作, 也要能对位进行操作。但是, 说明一个用作标志的普通变量至少要用一个字节---8 位, 而在某些计算机系统中则可能是 16 位。如果我们想在一个很大的表中存储很多标志, 那么 "被浪费" 的内存空间是很可观的。在 C 语言中, 一种方法是用叫做位段的构造类型来定义一个压缩信息的结构。

位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间。含有位段的结构体(联合体)称为位段结构。采用位段结构既能够节省空间,又方便于操作。

位段的格式以及类型支持

type [var]: digits

其中type只能为int,unsigned int,signed int三种类型。位段名称var是可选参数,即可以省略。digits表示该位段所占的二进制位数。

    struct node
    {
    unsigned int a:4;     //位段a,占4位
    unsigned int  :0;     //无名位段,占0位
    unsigned int b:4;     //位段b,占4位
    int  :6;              //无名位段,占6位
    };

相关文章

  • #位段

    位段 什么是位段 在大多数的计算机系统中, 一个字节是由八个更小的, 称作为位的单位组成的。位是比字节更小的单位。...

  • 段 位

    青铜,白银,黄金,铂金,钻石,星耀,最强王者,王者荣耀,你是哪一个段位?(从不打游戏,也是找了度老师的忙) 人生如...

  • 6.9位字段

    在存储空间非常宝贵的情况下,有可能需要将多个对象保存在一个机器字中.一种常用的方法是,使用类似于编译器符号表的单个...

  • 15位号段切换

    【15位号段切换】 尊敬的服务商,您好! 根据邮管局新规要求,为规范快递公司的号段规则,避免各家快递公司号段冲突等...

  • 16位代码段与32位代码段的区别

    16位代码段与32位代码段的区别: 16位代码段与32位代码段的区别如下: 16位代码段最长只能为64k,段内偏移...

  • iOS中位域(位段)的简单使用

    通常情况同步手机的时间可以传输UTC时间过去,UTC也是占用4个字节。但由于手环端已经完成,所以需要对此协议进行编...

  • [转]C结构体之位域(位段)

    转自C结构体之位域(位段) 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放...

  • iOS性能优化-使用位段提高委托模式下的程序效率

    什么是位段? 位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间。含有位段的结构...

  • 有位先生他姓段

    五点半起床的时候,父亲已经洗漱完毕,儿子已经开始晨读。六点三十分,为他们备好了早餐,却不见父亲遛弯儿回来,就决定先...

  • 内核问答

    01 段寄存器在16位汇编时是什么含义,在32位时是什么含义?答:段基址;段寄存器在32位下:段选择子 32...

网友评论

      本文标题:#位段

      本文链接:https://www.haomeiwen.com/subject/otrjrttx.html