2

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

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

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

字节值从 0 到 255。

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

4

3 回答 3

1

要从 int 获取字节数组,请使用:

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

然后你可以将值复制到你的数组

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

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

   byte byte1 = (byte) int1;
   byte byte2 = (byte) int2;
   byte byte3 = (byte) int3;
于 2012-09-06T14:02:45.427 回答
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 };
于 2012-09-06T13:59:06.150 回答
0

如果您确定您的值不会超过 byte range [0, 255],您可以简单地转换它们:

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

或者,您可以使用Convert.ToByte,它会抛出一个OverflowExceptionif 值小于 0 或大于 255。

于 2012-09-06T14:07:51.990 回答