C# 将bit位数据拼装为byte
public class BitWriter { private byte[] m_data = null; private int m_dataLen = 0; private int m_pos = 0; private BitArray bit_data = null; public BitWriter(int len) { m_dataLen = len; m_data = new byte[len]; Array.Clear(m_data, 0, len); bit_data = new BitArray(len * 8); } public void Write(int data, int size) { //将传入数据转换成二进制位 int[] value = new int[1] { data }; BitArray bit_temp = new BitArray(value); for (int i = 0; i < size; i++) { bit_data[m_pos + i] = bit_temp[size - i - 1]; } m_pos += size; } public byte[] GetData() { for (int i = 0, y = 0; i < bit_data.Length / 8; i++) { m_data[i] = 0; if(bit_data[y]) m_data[i] |= (byte)(1 << 7); if (bit_data[y + 1]) m_data[i] |= (byte)(1 << 6); if (bit_data[y + 2]) m_data[i] |= (byte)(1 << 5); if (bit_data[y + 3]) m_data[i] |= (byte)(1 << 4); if (bit_data[y + 4]) m_data[i] |= (byte)(1 << 3); if (bit_data[y + 5]) m_data[i] |= (byte)(1 << 2); if (bit_data[y + 6]) m_data[i] |= (byte)(1 << 1); if (bit_data[y + 7]) m_data[i] |= (byte)(1); y += 8; } return m_data; } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 两个byte[]数组合并
- 下一篇: c# 将数组或集合 转换成以逗号分隔的字符串