例如,我想分配&H80000000給一個 64 位有符號整數變數:
Dim a As Long = &H80000000
但是, integera具有 value&HFFFFFFFF80000000而不是&H80000000。
我試圖打電話CULng來規避符號擴展。盡管如此,它還是說“常量運算式不能在型別 'ULong' 中表示”。我推測這是因為 Visual Basic 禁止將負整數分配給無符號變數。
我使用的是 Visual Basic 2010 (.NET Framework 4.0)
uj5u.com熱心網友回復:
Dim a As Long = &H80000000L
使用文字后綴 L告訴編譯器您打算將此值作為長文字。否則,它被解釋為表示負值 ( -2147483648) 的有符號整數文字。或者,您可以使用后綴UI來表示無符號整數。
示例代碼:
Dim a As Long = &H80000000 ' Int32 literal -2147483648
Dim b As Long = &H80000000L ' Int64 literal 2147483648
Dim c As Long = &H80000000UI ' UInt32 literal 2147483648
Console.WriteLine(a.ToString("X")) ' FFFFFFFF80000000
Console.WriteLine(b.ToString("X")) ' 80000000
Console.WriteLine(c.ToString("X")) ' 80000000
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/314907.html
標籤:网络
上一篇:從VB.NetDLL參考DLL
