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
C# 字节数组位操作
最新推荐文章于 2025-04-22 11:50:51 发布