如何创建半动态字节数组

时间:2013-01-09 02:46:08

标签: c#

如何在c#代码中动态生成一个字节?

格式如下:

第一个字节是标准88,第二个字节是剩余字节数,最后一个是剩余字节。

示例:

1个字节:

byte[] bytes = new byte[] { 0x88, 0x01, 0};

2个字节:

byte[] bytes = new byte[] { 0x88, 0x02, 0, 0};

5个字节:

byte[] bytes = new byte[] { 0x88, 0x05, 0, 0, 0, 0, 0};

谢谢。

2 个答案:

答案 0 :(得分:3)

就是这样:

    static byte[] Get(byte num)
    {
        byte[] a = new byte[num + 2];
        a[0] = 0x88;
        a[1] = num;
        return a;
    }

所有其他字节默认初始化为0。

答案 1 :(得分:1)

如果数组中有数据字节,则可以像这样动态创建数组:

// data bytes
byte[] data = { 1, 2, 3 };

byte[] buffer = new byte[data.Length + 2];
buffer[0] = 0x88;
buffer[1] = (byte)data.Length;
data.CopyTo(buffer, 2);

如果以其他方式创建数据字节,代码的第一部分是相同的,那么只需将数据放入数组的其余部分,方式与前两个字节相同。例如五个零字节:

int len = 5;

byte[] buffer = new byte[len + 2];
buffer[0] = 0x88;
buffer[1] = (byte)len;
for (int i = 0; i < len; i++) {
  buffer[i + 2] = 0;
}