ULong データ型 (Visual Basic)
0 から 18,446,744,073,709,551,615 (1.84 x 10 ^ 19 以上) までの値の範囲の符号なし 64 ビット (8 バイト) の整数を保持します。
Remarks
ULong
データ型は、UInteger
には大きすぎるバイナリ データや、可能な限り最大の符号なし整数値を格納する場合に使用します。
ULong
の既定値は 0 です。
リテラルの代入
ULong
変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。 整数リテラルが ULong
の範囲外にある場合 (つまり、UInt64.MinValue より小さいか、UInt64.MaxValue より大きい場合)、コンパイル エラーが発生します。
次の例では、整数 7,934,076,125 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、ULong
値に割り当てられています。
Dim ulongValue1 As ULong = 7934076125
Console.WriteLine(ulongValue1)
Dim ulongValue2 As ULong = &H0001D8e864DD
Console.WriteLine(ulongValue2)
Dim ulongValue3 As ULong = &B0001_1101_1000_1110_1000_0110_0100_1101_1101
Console.WriteLine(ulongValue3)
' The example displays the following output:
' 7934076125
' 7934076125
' 7934076125
注意
16 進リテラルを表すにはプレフィックス &h
または &H
を使い、バイナリ リテラルを表すにはプレフィックス &b
または &B
を使い、8 進リテラルを表すにはプレフィックス &o
または &O
を使います。 10 進リテラルには、プレフィックスはありません。
Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _
を桁区切り記号として使って読みやすくすることもできます。
Dim longValue1 As Long = 4_294_967_296
Console.WriteLine(longValue1)
Dim longValue2 As Long = &H1_0000_0000
Console.WriteLine(longValue2)
Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
' 4294967296
' 4294967296
' 4294967296
Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_
) を使用することもできます。 次に例を示します。
Dim number As ULong = &H_F9AC_0326_1489_D68C
アンダースコア文字を先頭の区切り記号として使用するには、以下の要素を Visual Basic プロジェクト (*.vbproj) ファイルに追加する必要があります。
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
詳細については、「Visual Basic 言語バージョンの選択」を参照してください。
数値リテラルには、次の例に示すように、UL
または ul
型文字を含めて、ULong
データ型を表すこともできます。
Dim number = &H_00_00_0A_96_2F_AC_14_D7ul
プログラミングのヒント
負の数値。
ULong
は符号なしの型であるため、負の数を表すことはできません。ULong
型に評価される式で、単項マイナス (-
) 演算子を使用すると、Visual Basic で式が最初にDecimal
に変換されます。CLS 準拠。
ULong
データ型は共通言語仕様 (CLS) に含まれないため、CLS に準拠しているコードではそれを使用するコンポーネントを使用できません。相互運用の考慮事項。 オートメーション オブジェクトや COM オブジェクトなど、.NET Framework 用に作成されていないコンポーネントとやり取りする場合、
ulong
などの型は、他の環境ではデータ幅 (32 ビット) が異なる可能性があることに注意してください。 そのようなコンポーネントに 32 ビットの引数を渡す場合は、Visual Basic のマネージド コードで、ULong
ではなくUInteger
として宣言します。拡大変換。
ULong
データ型は、Decimal
、Single
、およびDouble
に拡大変換されます。 これは、System.OverflowException エラーを発生させることなく、これらの型のいずれかにULong
を変換できることを意味します。型宣言文字。 あるリテラルにリテラルの型文字
UL
を付けると、そのリテラルはULong
データ型に変換されます。ULong
には識別子の型文字がありません。Framework のデータ型 .NET Framework において対応する型は、System.UInt64 構造体です。
関連項目
.NET