public class BitBuffer
{
private byte[] m_data = null;
private int m_dataLen = 0;
private int m_pos = 0;
public BitBuffer(byte[] data)
{
m_data = data;
m_dataLen = data.Length;
}
public BitBuffer(byte[] data, int len)
{
m_data = data;
m_dataLen = len;
}
public void Skip(int offset)
{
m_pos += offset;
if (m_dataLen * 8 < m_pos)
{
throw new Exception("m_data.Length * 8 < m_offset");
}
}
public int Read(int size, bool noseek = false)
{
int starBytePos = m_pos / 8;
int starBitOffset = m_pos % 8;
int starBitMask = 0;
for (int i = 0; i < 8 - starBitOffset; ++i)
{
starBitMask <<= 1;
starBitMask += 1;
}
C# 字节数组位操作
最新推荐文章于 2022-11-16 23:13:05 发布
本文介绍了一个C#实现的BitBuffer类,该类用于进行位级别的读取和跳过操作。通过BitBuffer,可以高效地处理字节数组中的位数据,包括按位读取、跳过指定数量的位以及读取指定长度的字节序列。在读取过程中,类会确保不超过数据范围,并提供异常处理机制来确保数据安全。

最低0.47元/天 解锁文章
498

被折叠的 条评论
为什么被折叠?



