如果我有一个返回Int32的VB.Net函数,但使用unsigned int(UInt32)进行计算等.如何将值为"3392918397"的变量"MyUintVar32"转换为VB.Net中的标准Int32 ?
在c#中,如果我只是执行"return(int)(MyUintVar32);",我得到-902048899,而不是错误.
我尝试了几种不同的方法.与VB.Net相比,c#处理这些转换的方式有何不同?
我意识到这是一个老帖子,但问题没有得到解答.我想知道的其他人:
Dim myUInt32 As UInt32 = 3392918397 Dim myInt32 As Int32 = Convert.ToInt32(myUInt32.ToString("X"), 16)
反向操作:
myUInt32 = Convert.ToUInt32(myInt32.ToString("X"), 16)
此外,可以创建一个联合结构,以便在Int32和UInt32之间轻松转换:
Imports System.Runtime.InteropServices_ Public Structure UnionInt32 _ Public IntValue As Int32 _ Public UIntValue As UInt32 End Structure Dim MyUnionInt32 as UnionInt32 MyUnionInt32.UIntValue = 3392918397 Dim IntVal as Int32 = MyUnionInt32.UIntValue '= -902048899
反向操作:
MyUnionInt32.IntValue = -902048000 Dim UIntVal as UInt32 = MyUnionInt32.UIntValue '= 3392919296
干杯,TENware