如何将十六进制字符串中的地址转换为字节版本?

时间:2012-09-25 00:13:59

标签: c# winforms bytearray byte

我想说一个地址。 0x8402e42d除了它当前是字符串形式,它只是8402e42d。我想要它所以我按下一个按钮,它从文本框中取出字符串,在这种情况下是8402e42d,并将其转换为0x8402e42d。我曾经知道如何做到这一点,但我忘记了。在此先感谢您的帮助。

我也想知道最简单的方法。

1 个答案:

答案 0 :(得分:0)

要将其转换为带有十六进制前缀的字符串,您只需添加前缀:

address = "0x" + address;

要将字符串转换为数字,请使用Parse方法:

uint n = UInt32.Parse(address, NumberStyles.HexNumber);

(注意:您应该解析不带十六进制前缀0x的字符串。)

如果您想要一个字节数组而不是一个数字值,请使用BitConverter.GetBytes方法:

byte[] data = BitConverter.GetBytes(n);

请注意,数组中的字节将按本机顺序放置,即在小端系统(例如Intel)上放置,最低有效字节优先。

您可以检查BitConverter.IsLittleEndian属性以找出系统的字节顺序,并反转数组以获得特定的字节序:

if (BitConverter.IsLittleEndian) {
  Array.Reverse(data);
}