用C++可以存储2bit的数据么?

问题描述:

今天用哈夫曼编码做24位bmp图像的压缩,像素里的RGB已经按频率编好了前缀编码。问题是编好了的前缀码有的较短,不需要一个字节来装,只要几个比特就好了。但是最小的数据类型unsigned char也有一个字节,用它来装编码达不到压缩的效果

还有std::bitset

实际上对于32bit总线来说一次读取数据的最小单位是4个字节。所以现在的编译器都会按照4字节8字节对齐,使用bit存储节约一点内存但是会让你的程序的性能下降几个数量级。

移位运算,再增加一个变量表示存了多少位。