自己最近在做一个涉及到内容压缩的项目,需要把数据按照二进制的方式来处理(比如LZ77压缩、霍夫曼编码等),涉及到比较多的函数和功能。
但是自己做的时候发现,虽然c++提供了比较全面的二进制操作,但是主要是基于某一个数据类型进行二进制操作(比如char),而char又是默认是8位的,这对于跨字符操作不是很方便,需要做比较多的判断。
可能我表示的也不是很清楚,或者对c++的理解也有问题,但是我是希望能找到一个可以行云流水般处理二进制的方法...或者有没有比较好用的库?
有没有朋友在这方面有经验可以指点一二,感激不尽,如果有帮助,我会私戳发红包表示感谢。
如果你想要大一点的字符表示范围,可以用wchar_t。
如果你想要一个可以把内存中的数据以任意一位作为一个字节的开始的类型,那肯定是不可能实现的。
但是你可以
`nl=((arr[0]&c0)>>6);
nh=((arr[1] &0x0f) << 2);
n=nh|nl;`
来把前一个字节的高2位和后一个字节的低4位拼成一个6位二进制数