在不转换值的情况下C#
或VB.NET
如何检索值的DWORD
低位Int64
?
我已经阅读了这个SO 问题,但我仍然不清楚,我与 合作VB.NET
,无论如何,答案是:
在许多语言中,您需要做的就是将其转换为 Int32。最高位将被丢弃。
这似乎只适用于C#
将其转换为整数:
((int)LongValue)
但VB.NET
似乎不是因为我试图强制转换它并且我得到了一个典型的算术溢出异常。
我有一个这样的方法来获得一个低阶词Integer
:
Public Shared Function GetLoWord(ByVal value As Integer) As Short
If Value And &H8000I Then
Return CShort(Value Or &HFFFF0000I)
Else
Return CShort(Value And &HFFFFI)
End If
End Function
现在我想为 a 编写相同的方法Long
来检索 low- DWORD
,那么我该如何继续编写呢?:
''' <summary>
''' Gets the low-order double word of an 'Int64' value.
''' </summary>
''' <param name="Value">Indicates the 'Int64' value that contains both the LoDword and the HiDword.</param>
''' <returns>The return value is the low-order double word.</returns>
Public Shared Function GetLoDword(ByVal value As Long) As Integer
' Code goes here...
End Function