我需要进行一些关于int/hex/byte的工作,但是我很难做到正确。另一端的tcp服务器期望使用小端模式。
我需要发送一个由HEX值组成的字节数组。
我可以使用以下代码将
我有两个问题:
1. 这(据我所知)是大端序。除了剪切字符串并手动重写以反转它之外,是否有一个.NET例程可以为我执行此操作? 2. 一旦我把它反转过来,如何在以下字节数组中获得
谢谢。
我需要发送一个由HEX值组成的字节数组。
6000
需要被发送为:
0x70, 0x17
19
需要被发送为:
生成的字节数组应该是这样的。
0x13, 0x00, 0x00, 0x00
**FROM THE MANUFACTURER**
Complete message should be:
0x70, 0x17, 0x13, 0x00, 0x00, 0x00, 0x40, 0x42, 0x0f, 0x00, 0xA0, 0x86, 0x01, 0x00, 0x04, 0x01, 0x02, 0x03, 0x04
我可以使用以下代码将
6000
的十六进制值转换为1770
:.ToString("x4")
。我可以使用以下代码将19
的十六进制值转换为00000013
:.ToString("x8")
。我有两个问题:
1. 这(据我所知)是大端序。除了剪切字符串并手动重写以反转它之外,是否有一个.NET例程可以为我执行此操作? 2. 一旦我把它反转过来,如何在以下字节数组中获得
7017
:[0] = 0x70,[1] = 0x17
?谢谢。
byte[] {0x70, 0x17}
结束。 - Mong ZhuBitConverter.GetBytes(value);
比字符串更适合。一旦你有了一个字节数组,只需调用Array.Reverse(bytes);
来反转你的字节。 - fairtrax0x70,0x17
等只是字节的可读形式,但“在传输中”的字节需要每个字节占用1个字节,而不是4个(0x17表示23等)。如果你真的要格式化它们并发送由逗号分隔的字符串,请使用下面Mong Zhu的代码。 - fairtraxBitConverter.GetBytes(value);
将数据转换为字节数组,然后将其反转以获取小端序,并发送到 TCP/IP 流。 - fairtraxbytes [0]
等。 - fairtrax