如何将int转换为具有两个固定值的字节数组

时间:2012-09-06 13:56:57

标签: c# bytearray arduino

我正在向Arduino发送五个字节:

byte[] { 0xF1, byte1, byte2, byte3, 0x33 }

byte1byte2byte3的值是动态的。第一个和最后一个字节总是相同的。

字节值从0到255。

如何简单地将int转换为字节并将它们放入我的字节数组?

3 个答案:

答案 0 :(得分:1)

从int使用获取字节数组:

    byte[] intAsArrayOfBytes = BitConverter.GetBytes(yourInt);

然后您可以将值复制到数组

   byte[] { 0xF1, intAsArrayOfBytes[0], intAsArrayOfBytes[1], intAsArrayOfBytes[3], 0x33 }

或者如果您只需要将int类型转换为字节类型,并且您知道0..255之间的变量使用:

   byte byte1 = (byte) int1;
   byte byte2 = (byte) int2;
   byte byte3 = (byte) int3;

答案 1 :(得分:0)

假设整数介于0到255之间,请使用Convert.ToByte()。例如:

int byte1;
int byte2;
int byte3;
byte[] bytes = new byte[]{ 0xF1, Convert.ToByte(byte1), 
    Convert.ToByte(byte2), Convert.ToByte(byte3), 0x33 };

答案 2 :(得分:0)

如果您确定您的值不会超过字节范围[0, 255],则可以简单地投射它们:

byte[] b = { 0xF1, (byte)byte1, (byte)byte2, (byte)byte3, 0x33 }

另外,您可以使用Convert.ToByte,如果值小于0或大于255,则会引发OverflowException