Vb.net 将十六进制数转换为十六进制值
我有以下代码Vb.net 将十六进制数转换为十六进制值,vb.net,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" & sSeri
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)
有人知道为什么,知道如何正确地做到这一点吗
谢谢大家! 如果您读取了错误,它表明您有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
Hi Mark,有没有办法告诉Convert.ToInt32我的字符串是十六进制值?也许我的参数是一个未知的值,如果它是十六进制值、long值或int值。您的字符串太大,无法放入Int32尝试Int64,您到底想做什么?您的iSeries实际上是十六进制数的表示形式。我只在这个特殊情况下使用Convert.ToInt32,在这个特殊情况下,我读取了磁盘的分区序列,但我认为我可以告诉函数我的函数确实是十六进制值,而不是其他值。您的思路是正确的,你的主要问题是你的十六进制数太大了,我更新了我的例子来说明这个数是双向转换的。