【C/C++】C语言中一些容易被人忽略的东西 之四 【不常见的位域】
来源:互联网 发布:python list转换字典 编辑:程序博客网 时间:2024/05/18 03:46
转载请注明出处
由于阅历有限,篇幅不周之处还望指出,谢谢
大学里的课程很少有讲到位域这么个东西,甚至是位操作符都没有重点讲。
事实上,位操作在算法优化上是可能起到关键性作用的。
&按位与
|按位或
^按位异或
~按位取反
<<左移
>>右移
这些便是六种操作符,那么什么是位域呢?
有时候信息的存储并不需要一个完整的字节,只需要占用几个甚至一个二进制位。为此,诞生了位域这么个东西,用来节省存储空间,简化数据处理。
定义方法:
struct位域结构名 {位域列表};
如:
struct bit { int x:8; //长度为8 int y:2; //长度为2 int z:6 //长度为6 };如上y,z实际上储存在一个字节里,但是一个位域必须储存在一个字节里,不能夸字节,如果z的长度为7,那么z的存储将会新起一个字节。
也可以自定义新起一个字节,使用空域:
int :0;位域可以无位域名,这样的位域用来填充或者调整位置,由于没有名字,无法使用
int :2;
//使用方法bit.x=1;bit.y=1;bit.z=1;
- 【C/C++】C语言中一些容易被人忽略的东西 之四 【不常见的位域】
- 【C/C++】C语言中一些容易被人忽略的东西 之二 【typedef 与函数的姻缘】
- 【C/C++】C语言中一些容易被人忽略的东西 之三 【共用体、联合、union】
- 【C/C++】C语言中一些容易被人忽略的东西 之五 【预编译中的未知数】
- 【C/C++】C语言中一些容易被人忽略的东西 之六 【文件读写,y上两点】
- 【C/C++】C语言中一些容易被人忽略的东西 之一 【内存的分配与释放】
- 【C/C++】C++中一些容易被人忽略的东西 之一 【寥寥代码,让您分清引用和指针】
- C语言中容易忽略的问题
- c语言容易忽略的点
- 关于c语言中容易忽略的问题
- C中容易忽略的知识点
- C语言---那些容易被忽略的细节
- C语言中一些不常见的预处理命令
- 关于c语言的一些你不知道的东西 (位,static,struct)加速。
- C语言的一些东西
- [c++]容易忽略的问题
- C语言中容易被忽略的细节(第一篇)
- C语言中容易被忽略的细节(第二篇)
- 怎样安装配置Jira和Confluence Wiki
- SSL双向认证java实现
- 您不能初始化一个远程桌面连接,因为远程计算机上的Windows登录软件被不兼容的软件Ginastub.dll取代”
- Android逐帧动画(一)
- Win2008ServerR2下查看IIS并发连接数
- 【C/C++】C语言中一些容易被人忽略的东西 之四 【不常见的位域】
- protobuf
- 音视频编解码基础知识
- 获取地址
- YUV 详解
- XML转成HTML
- rsync:找来找去,还是Linux下的工具好用,还是命令行好用
- NLP with python 3 处理原始文本
- HTML笔记0 - 序言