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

tmi*_*hty 2 vb.net

我有以下代码

    Dim sSerialNumber = "9082285F"
    Dim iSerial As Integer = ("&H" & sSerialNumber)
    Dim iSerial2 As Integer = Convert.ToInt32(sSerialNumber, 16)
Run Code Online (Sandbox Code Playgroud)

但VB.NET不喜欢这个.IDE在运行时告诉我在行中检测到堆栈溢出

Dim iSerial As Integer = ("&H" & sSerialNumber)
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

Mar*_*all 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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述