2

Arduino に 5 バイトを送信しています。

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

byte1byte2およびの値byte3は動的です。最初と最後のバイトは常に同じです。

バイト値は 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]を超えないことが確実な場合は、単純にキャストできます。

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

代わりに、値が 0 未満または 255 より大きい場合Convert.ToByteにスローするを使用できます。OverflowException

于 2012-09-06T14:07:51.990 に答える
0

int が 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 に答える