我到处都读到人们谈论一点一点地压缩对象。诸如“前三位代表某某,然后接下来的两位代表这个,十二位代表那个”之类的东西
我明白为什么要尽量减少内存使用量,但我想不出一个好的方法来实现它。我知道我会把它打包成一个或多个整数(或长整数,等等),但我想不出一种简单的方法来处理它。如果有一个类可以让我从任意长度的二进制字段中获取/设置任意位,那将会非常酷,它会为我处理事情,我就不必去处理 &'s 和 |' s 和面具等。
这种东西有标准模式吗?
最佳答案
来自 MSDN :
BitArray Class
Manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on (1) and false indicates the bit is off (0).
例子:
BitArray myBitArray = new BitArray(5);
myBitArray[3] = true; // set bit at offset 3 to 1
不过,BitArray 只允许您设置单个位。如果你想用更多位编码值,可能没有办法绕过 &'s 和 |'s 以及掩码和东西:-)
关于c# - 读/写压缩二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1862090/