将十六进制转换为字节数组的问题

时间:2013-09-13 16:10:52

标签: c# asp.net asp.net-mvc-3

我有像

这样的字符串
string test = "0x527AE53437CAED39D3E2A8B3E90FFC3BA9073B6D933BC05FF6677B5521DC34"

如何将字符串转换为byte []?

2 个答案:

答案 0 :(得分:3)

在名称空间SoapHexBinary

中使用System.Runtime.Remoting.Metadata.W3cXsd2001
string s = "0x527AE53437CAED39D3E2A8B3E90FFC3BA9073B6D933BC05FF6677B5521DC34";
byte[] num = SoapHexBinary.Parse(s.Substring(2)).Value;

答案 1 :(得分:0)

该字符串是十六进制的。

如果你想将它转换为数字,你将需要特殊处理 - 这是一个非常大的数字,并将溢出基本类型。

如果它是合理的大小,则所有数字类型都与基本表示无关。要查看数字的十六进制版本,只需在其上调用.ToString("X")即可。

修改

我的答案是基于指定byte []之前的问题的初始版本。之前有一个问题和答案:How can I convert a hex string to a byte array?