c# - 读/写压缩二进制数据

标签 c# binary-data

我到处都读到人们谈论一点一点地压缩对象。诸如“前三位代表某某,然后接下来的两位代表这个,十二位代表那个”之类的东西

我明白为什么要尽量减少内存使用量,但我想不出一个好的方法来实现它。我知道我会把它打包成一个或多个整数(或长整数,等等),但我想不出一种简单的方法来处理它。如果有一个类可以让我从任意长度的二进制字段中获取/设置任意位,那将会非常酷,它会为我处理事情,我就不必去处理 &'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/

相关文章:

c# - 单元测试 - 如何测试仅插入日志消息的 `void` 方法 (Serilog)

sql - 按位异或,在 SQL 中固定长度的二进制字符串(240 字节)

c# - StreamReader 和二进制数据

c - 子字符串中字符的外观

rust - 如何在不制作任何副本的情况下将 bytes::Bytes 转换为 &str?

c# - 将 "if"语句条件移动到局部变量会使 C# 编译器不满意

c# - Asp.net Gridview - 为什么 DataRowBound 更改在排序时丢失?

c# - 如何转换 'MS.Internal.Data.CollectionViewGroupInternal'使用?

c# - 我想将现有的 List<T> 保存到 c# 中的 XML 文件中

c# - Emgu CV制作透明背景