将十六进制数转换为十六进制值

时间:2014-03-22 00:14:01

标签: vb.net

我有以下代码

    Dim sSerialNumber = "9082285F"
    Dim iSerial As Integer = ("&H" & sSerialNumber)
    Dim iSerial2 As Integer = Convert.ToInt32(sSerialNumber, 16)

但VB.NET不喜欢这个。 IDE在运行时告诉我在行

中检测到堆栈溢出
Dim iSerial As Integer = ("&H" & sSerialNumber)

有人知道为什么并且知道如何正确地做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

如果您阅读了错误,则表示您有System.OverflowException异常。尝试将您的类型更改为Long而不是Integer。

要演示的小型控制台程序。

Sub Main()
    Dim sSerialNumber = "9082285F"
    Dim iSerial As Long = ("&H" & sSerialNumber)
    Dim iSerial2 As Long = Convert.ToInt64(sSerialNumber, 16)
    Console.WriteLine(sSerialNumber)
    Console.WriteLine(iSerial)
    Console.WriteLine(Hex(iSerial))
    Console.WriteLine(iSerial2)
    Console.WriteLine(Hex(iSerial2))
    Console.ReadLine()
End Sub

enter image description here