我需要在VB.NET中将十六进制转换为十进制.在C#中找到了几个例子,但是当我尝试转换为VB.NET时,我没有成功.我想要转换的十六进制数的示例是"A14152464C203230304232323020572F544947455234352E".
对于实际上不需要使用bignum类的十六进制值,可以使用常规转换函数,但在数字前加上"&H".VB将文本中的"&H"解释为"这是一个十六进制数字",就像在代码中一样.
dim n = Cint("&H" & text)
这是一个24字节(192位)的数字; 你期待什么价值?
请注意,您可以Convert
在这里使用很多蹩脚的工作 - 例如(在C#中):
string hex = "A14152464C203230304232323020572F544947455234352E"; byte[] raw = new byte[hex.Length / 2]; for (int i = 0; i < raw.Length ; i++) { raw[i] = Convert.ToByte(hex.Substring(i * 2,2), 16); }
你如何得到raw
一个数字取决于你认为这个数字是什么...
Visual Basic翻译由.NET Reflector提供(虽然"-1"看起来很奇怪):
Dim hex As String = "A14152464C203230304232323020572F544947455234352E" Dim raw As Byte() = New Byte((hex.Length / 2) - 1) {} Dim i As Integer For i = 0 To raw.Length - 1 raw(i) = Convert.ToByte(hex.Substring((i * 2), 2), &H10) Next i