从ULong转换为Integer

时间:2015-08-09 01:23:51

标签: vb.net numbers implicit-conversion

我正在尝试将ULONG列表转换为整数数组。

问题与如何丢弃ULONG的MSB有关!我尝试了所有类型的操作,并且所有操作都引发了“溢出异常”错误:

dim MyInteger as Integer = CInt(ULong_Number)     
dim MyInteger as Integer = Convert.ToInt32(ULong_Number)
dim MyInteger as Integer = Convert.ToUInt32(ULong_Number) 
dim MyInteger as Integer = ULong_Number xor &HFFFFFFFF00000000 xor &HFFFFFFFF00000000

我试图避免转换成临时字节数组,然后将每4个字节读入整数(LIST如果巨大,将近200万个数字)。

有没有人有任何想法将此ULONG隐式转换为INTEGER?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果你确定ULong_Number的值不超过整数的最大值(2 ^ 31 - 1,或& H7FFFFFFF),或者你想忽略任何更高阶的位(这将是一件奇怪的事情,但你 试图将一个8字节的数字装入4个字节中),你可以使用它。

Dim MyInteger As Integer = CInt(ULong_Number And CULng(&H000000007FFFFFFF))