我想取一个地址让我们说。0x8402e42d,但它目前是字符串形式,即 8402e42d。我想要它,所以我按下一个按钮,它将字符串从文本框中取出,在本例中为 8402e42d,并将其转换为 0x8402e42d。我曾经知道如何做到这一点,但我忘记了。在此先感谢您的帮助。
我也希望知道这样做的最简单方法。
要将其转换为具有十六进制前缀的字符串,您只需添加前缀:
address = "0x" + address;
要将字符串转换为数字,请使用以下Parse
方法:
uint n = UInt32.Parse(address, NumberStyles.HexNumber);
(注意:您应该解析没有十六进制前缀的字符串0x
。)
如果您想要一个字节数组而不是单个数值,请使用以下BitConverter.GetBytes
方法:
byte[] data = BitConverter.GetBytes(n);
请注意,数组中的字节将按本机顺序放置,即在 little endian 系统(例如 Intel)上,最低有效字节在前。
您可以检查该BitConverter.IsLittleEndian
属性以找出系统的字节序,并反转数组以获得特定的字节序:
if (BitConverter.IsLittleEndian) {
Array.Reverse(data);
}