UInteger データ型
0 から 4,294,967,295 までの値の範囲の符号なし 32 ビット (4 バイト) の整数を保持します。
Remarks
UInteger
データ型は、最も効率的なデータ幅で最も大きな符号なしの値を提供します。
UInteger
の既定値は 0 です。
リテラルの代入
UInteger
変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。 整数リテラルが UInteger
の範囲外にある場合 (つまり、UInt32.MinValue より小さいか、UInt32.MaxValue より大きい場合)、コンパイル エラーが発生します。
次の例では、整数 3,000,000,000 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、UInteger
値に割り当てられています。
Dim uintValue1 As UInteger = 3000000000ui
Console.WriteLine(uintValue1)
Dim uintValue2 As UInteger = &HB2D05E00ui
Console.WriteLine(uintValue2)
Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
' 3000000000
' 3000000000
' 3000000000
Note
16 進リテラルを表すにはプレフィックス &h
または &H
を使い、バイナリ リテラルを表すにはプレフィックス &b
または &B
を使い、8 進リテラルを表すにはプレフィックス &o
または &O
を使います。 10 進リテラルには、プレフィックスはありません。
Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _
を桁区切り記号として使って読みやすくすることもできます。
Dim uintValue1 As UInteger = 3_000_000_000ui
Console.WriteLine(uintValue1)
Dim uintValue2 As UInteger = &HB2D0_5E00ui
Console.WriteLine(uintValue2)
Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
' 3000000000
' 3000000000
' 3000000000
Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_
) を使用することもできます。 次に例を示します。
Dim number As UInteger = &H_0F8C_0326
アンダースコア文字を先頭の区切り記号として使用するには、以下の要素を Visual Basic プロジェクト (*.vbproj) ファイルに追加する必要があります。
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
詳細については、「Visual Basic 言語バージョンの選択」を参照してください。
数値リテラルには、次の例に示すように、UI
または ui
型文字を含めて、UInteger
データ型を表すこともできます。
Dim number = &H_0FAC_14D7ui
プログラミングのヒント
UInteger
データ型および Integer
データ型は、32 ビット プロセッサで最適なパフォーマンスを発揮します。これは、より小さい整数型 (UShort
、Short
、Byte
、SByte
) では、使用するビット数が少なくても、読み込み、格納、およびフェッチにかかる時間が長くなるためです。
負の数値。
UInteger
は符号なしの型であるため、負の数を表すことはできません。UInteger
型に評価される式で、単項マイナス (-
) 演算子を使用すると、Visual Basic で式が最初にLong
に変換されます。CLS 準拠。
UInteger
データ型は共通言語仕様 (CLS) に含まれないため、CLS に準拠しているコードではそれを使用するコンポーネントを使用できません。相互運用の考慮事項。 オートメーション オブジェクトや COM オブジェクトなど、.NET Framework 用に作成されていないコンポーネントとやり取りする場合、
uint
などの型は、他の環境ではデータ幅 (16 ビット) が異なる可能性があることに注意してください。 そのようなコンポーネントに 16 ビットの引数を渡す場合は、Visual Basic のマネージド コードで、UInteger
ではなくUShort
として宣言します。拡大変換。
UInteger
データ型は、Long
、ULong
、Decimal
、Single
、およびDouble
に拡大変換されます。 これは、System.OverflowException エラーを発生させることなく、これらの型のいずれかにUInteger
を変換できることを意味します。型宣言文字。 あるリテラルにリテラルの型文字
UI
を付けると、そのリテラルはUInteger
データ型に変換されます。UInteger
には識別子の型文字がありません。Framework のデータ型 .NET Framework において対応する型は、System.UInt32 構造体です。
関連項目
.NET