Тип данных Byte (Visual Basic)
Содержит целые числа без знака от 8-разрядного (1-байта), которые варьируются в значении от 0 до 255.
Замечания
Byte
Используйте тип данных для хранения двоичных данных.
Значение по умолчанию для типа Byte
— 0.
Литеральные назначения
Можно объявить и инициализировать Byte
переменную, назначив ему десятичный литерал, шестнадцатеричный литерал, восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал. Если целочисленный литерал находится за пределами диапазона ( Byte
то есть, если оно меньше Byte.MinValue или больше Byte.MaxValue), возникает ошибка компиляции.
В следующем примере целые числа равны 201, которые представлены как десятичные, шестнадцатеричные и двоичные литералы неявно преобразуются из целочисленного 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
Примечание.
Вы используете префикс или обозначает шестнадцатеричный литерал, префикс &h
или &H
&B
для обозначения двоичного литерала, а также префикса &b
&o
или &O
для обозначения восьмеричного литерала. У десятичных литералов префиксов нет.
Начиная с Visual Basic 2017, вы также можете использовать символ подчеркивания, _
как разделитель цифр для повышения удобочитаемости, как показано в следующем примере.
Dim byteValue3 As Byte = &B1100_1001
Console.WriteLine(byteValue3)
' The example displays the following output:
' 201
Начиная с Visual Basic 15.5, можно также использовать символ подчеркивания (_
) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмизначными цифрами. Например:
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 и Юникодом.Расширение. Тип
Byte
данных расширяется доShort
,UShort
Integer
, ,Long
UInteger
, ,ULong
,Decimal
Single
Double
или . Это означает, что вы можете преобразоватьByte
в любой из этих типов без возникновения System.OverflowException ошибки.Тип символов.
Byte
не имеет символа литерального типа или символа типа идентификатора.Тип платформы. В .NET Framework данный тип соответствует структуре System.Byte.
Пример
В следующем примере b
это Byte
переменная. Инструкции демонстрируют диапазон переменной и применение операторов бит-shift к ней.
' 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)