我想将十六进制转换为UInt。问题如下:
当我尝试这个时:
uint value = Convert.ToUInt32((hex), 16);
例如,十六进制大小为 12 字节,一切正常,但是当我尝试转换大小为 32 字节的十六进制时,出现此错误:
value too large or too small for int32
然后我试试这个:
ulong = Convert.ToUInt64((hex), 16);
我收到此错误。
value too large or too small for int64
有人知道我做错了什么?
Sowi 错误是正确的:https://msdn.microsoft.com/pl-pl/library/system.uint64.maxvalue(v=vs.110).aspx0xFFFFFFFFFFFFFFFF是最大 Uint64 值。您尝试输入:0x1234567891123456789223456789什么是更大的价值。
最后我像这样切割十六进制数:
十六进制 = 1234567891123456789223456789
ulong result= Convert.ToUInt64(12345678911234, 16);
result += Convert.ToUInt64(56789223456789, 16);
这解决了我的问题。感谢您的回复,让我思考!!