在实际的应用中,有些数据的存储只需要几个二进制位,而不需要一个字节或几个字节,比如:电灯接通电源的状态,只有通电和未通电两种状态,用 1 和 0 就可以表示,为了满足这种需求,C 语言中引入了位域的概念
位域是一种数据结构,可以把数据以二进制位的形式紧凑的存储,它允许程序对此结构的位进行操作
在计算机早期,内存是非常稀缺的,需要尽可能的节省每一个字节,所以,C 语言中就出现了能针对二进制位进行操作的位域
位域这种数据结构,可以最大限度的节省存储空间,对于一些非常频繁的操作,需要尽可能的减少操作的数据,比如:在开发网络应用时,数据的序列化和反序列化是很频繁的,如果能减少数据的长度,对提升数据打包效率是很有帮助的
位域的出现,让我们可以用变量名代表某些bit,并通过变量名获取和设置 bit 的值,而不是通过晦涩难理解的位操作来进行,例如:
struct field
{
unsigned char b0 : 3,
b1 : 2,
b2 : 3;
};
struct field bf;
bf.b1 = 3;
<< · Back Index ·>>
1 丁零零零零…电话铃声急促,李明杰拿起了话筒。洮昌公安派出所值班民警报告:“刚才,管区内一对夫妇来派出所报案,他们的1 ...
胡安·卡洛斯国王大学Logo 胡安·卡洛斯国王大学 (Universidad Rey Juan Carlos) ,简称胡卡( URJC),是一所以西班牙老国王 ...