バイト (Byte) データ型 (Visual Basic)

0 から 255 までの値の範囲の符号なし 8 ビット (1 バイト) の整数を保持します。

Remarks

バイナリ データを格納するには、Byte データ型を使用します。

Byte の既定値は 0 です。

リテラルの代入

Byte 変数を宣言し、10 進リテラル、16 進リテラル、8 進リテラル、または (Visual Basic 2017 以降) バイナリ リテラルを代入することによって初期化できます。 整数リテラルが Byte の範囲外にある場合 (つまり、Byte.MinValue より小さいか、Byte.MaxValue より大きい場合)、コンパイル エラーが発生します。

次の例では、整数 201 を 10 進リテラル、16 進リテラル、バイナリ リテラルで表したものが、Integer から byte 値に暗黙的に変換されています。

Dim byteValue1 As Byte = 201
Console.WriteLine(byteValue1)

Dim byteValue2 As Byte = &H00C9
Console.WriteLine(byteValue2)

Dim byteValue3 As Byte = &B1100_1001
Console.WriteLine(byteValue3)
' The example displays the following output:
'          201
'          201
'          201

注意

16 進リテラルを表すにはプレフィックス &h または &H を使い、バイナリ リテラルを表すにはプレフィックス &b または &B を使い、8 進リテラルを表すにはプレフィックス &o または &O を使います。 10 進リテラルには、プレフィックスはありません。

Visual Basic 2017 以降では、次の例に示すように、アンダースコア文字 _ を桁区切り記号として使って読みやすくすることもできます。

Dim byteValue3 As Byte = &B1100_1001
Console.WriteLine(byteValue3)
' The example displays the following output:
'          201

Visual Basic 15.5 以降では、プレフィックスと 16 進数、2 進数、または 8 進数の間に先頭の区切り記号としてアンダースコア文字 (_) を使用することもできます。 次に例を示します。

Dim number As Byte = &H_6A

アンダースコア文字を先頭の区切り記号として使用するには、以下の要素を Visual Basic プロジェクト (*.vbproj) ファイルに追加する必要があります。

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

詳細については、「Visual Basic 言語バージョンの選択」を参照してください。

プログラミングのヒント

  • 負の数値。 Byte は符号なしの型であるため、負の数を表すことはできません。 Byte 型に評価される式で、単項マイナス (-) 演算子を使用すると、Visual Basic で式が最初に Short に変換されます。

  • 形式変換。 Visual Basic でファイルの読み取りまたは書き込みを行うとき、または DLL、メソッド、およびプロパティを呼び出すときに、データ形式を自動的に変換させることができます。 Byte 変数および配列に格納されているバイナリ データは、そのような形式の変換時に保持されます。 バイナリ データには String 変数を使用しないでください。ANSI 形式と Unicode 形式間の変換時に、その内容が破損する可能性があります。

  • 拡大変換。 Byte データ型は、ShortUShortIntegerUIntegerLongULongDecimalSingle、または Double に拡大変換されます。 これは、System.OverflowException エラーを発生させることなく、これらの型のいずれかに Byte を変換できることを意味します。

  • 型宣言文字。 Byte には、リテラルの型文字も識別子の型文字も含まれません。

  • Framework のデータ型 .NET Framework において対応する型は、System.Byte 構造体です。

次の例では、bByte 変数です。 このステートメントでは、変数の範囲と、それに対するビットシフト演算子の適用を示しています。

' The valid range of a Byte variable is 0 through 255.
Dim b As Byte
b = 30
' The following statement causes an error because the value is too large.
'b = 256
' The following statement causes an error because the value is negative.
'b = -5
' The following statement sets b to 6.
b = CByte(5.7)

' The following statements apply bit-shift operators to b.
' The initial value of b is 6.
Console.WriteLine(b)
' Bit shift to the right divides the number in half. In this 
' example, binary 110 becomes 11.
b >>= 1
' The following statement displays 3.
Console.WriteLine(b)
' Now shift back to the original position, and then one more bit
' to the left. Each shift to the left doubles the value. In this
' example, binary 11 becomes 1100.
b <<= 2
' The following statement displays 12.
Console.WriteLine(b)

関連項目