2

の場合、次のコード:

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

lLength <= &HFFFF返品中Falseです。

私の推測では、それは値&HFFFFとして解釈されるため、ステートメントは に評価されます。Integer-1False

私も試し&H0000FFFFましたが、IDEは先頭を削除し、コンパイルエラーの原因となるもの0000も試しました。&HFFFFL

65535VB6で16進リテラルで表すことはできますか?

4

2 に答える 2

2

あなたが正しいです。これは、&HFFFF が -32,768 ~ +32,767 の範囲の符号付き整数に変換されるためです。

& を使用して明示的に long に変換します。

Private Sub Form_Load()
    MsgBox CLng(&HFFFF) '--> -1
    MsgBox CLng(&HFFFF&) '--> 65535
End Sub
于 2013-07-17T08:07:50.157 に答える