如何以十六进制文字/符号正确表示Long值`& HFFFF`?

时间:2013-07-17 06:56:45

标签: vb6 hex

对于,以下代码:

Dim lLength As Long
lLength = 350
If lLength <= &HFFFF Then
    MsgBox "True"
EndIf

lLength <= &HFFFF正在返回False

我的猜测是&HFFFF被解释为Integer-1,因此语句的结果为False

我也尝试了&H0000FFFF但IDE删除了前导0000,我也尝试了&HFFFFL,这会导致编译错误。

我可以在VB6中的Hex文字中表示65535吗?

2 个答案:

答案 0 :(得分:4)

尝试将其明确标记为Long,并带有&符号&amp ;.

&HFFFF& 
没有尾随&符号的

&HFFFFInteger字面值,VB6中的Integer是带符号的2字节整数,范围为-32,768到+32,767。

答案 1 :(得分:2)

你是对的。这是因为&amp; HFFFF被转换为有符号整数,范围为-32,768到+32,767。

使用&amp;。

将其显式转换为long
Private Sub Form_Load()
    MsgBox CLng(&HFFFF) '--> -1
    MsgBox CLng(&HFFFF&) '--> 65535
End Sub