需要设置一个字节[]

Dan*_*ass 3 c# parsing

目标是得到一个字节[16],其中第一个元素是十六进制值55,第二个元素是十六进制值AA.其他14是十六进制值0.

我试过了

byte[] outStream = System.Text.Encoding.UTF8.GetBytes("55 AA 00 00 00 00 00 00 00 00 00 00 00 00 00 00");
Run Code Online (Sandbox Code Playgroud)

但这会使用ascii值填充byte [],而不是十六进制值.

我试过了

  byte[] outStream = new byte[16];
  outStream[0] = byte.Parse("55");
  outStream[1] = byte.Parse("AA");
  for(int i=2; i<16; i++)
  {
    outStream[i] = byte.Parse("00");
  }
Run Code Online (Sandbox Code Playgroud)

但这也不起作用.它不提供十六进制值,而是在AA上崩溃的整数值,因为它不是可解析的int.

任何帮助,将不胜感激.

dtb*_*dtb 12

你可以在C#中用十六进制前缀写一个十六进制整数文字:

byte[] result = new byte[16];
result[0] = 0x55;
result[1] = 0xaa;
Run Code Online (Sandbox Code Playgroud)

默认情况下,字节数组填充0x00,因此您只需设置前两个元素.

或者,您可以使用数组初始化语法:

byte[] result = new byte[] { 0x55, 0xaa, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
Run Code Online (Sandbox Code Playgroud)