Tipo de datos Byte (Visual Basic)
Contiene enteros sin signo de 8 bits (1 bytes) cuyo valor oscila entre 0 y 255.
Comentarios
Use el tipo de datos Byte
para contener datos binarios.
El valor predeterminado de Byte
es 0.
Asignaciones de literales
Puede declarar e inicializar una variable Byte
si la asigna a un literal decimal, un literal hexadecimal, un literal octal o (a partir de Visual Basic 2017) un literal binario. Si el literal integral está fuera del rango de Byte
(es decir, si es inferior a Byte.MinValue o mayor que Byte.MaxValue), se produce un error de compilación.
En el ejemplo siguiente, los enteros que equivalen a 201 que se representan como literales binarios, hexadecimales y decimales se convierten implícitamente de Integer a valores 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
Nota
Use el prefijo &h
o &H
para denotar un literal hexadecimal, el prefijo &b
o &B
para denotar un literal binario y el prefijo &o
o &O
para denotar un literal octal. Los literales decimales no tienen prefijo.
A partir de Visual Basic 2017, también puede usar el carácter de subrayado, _
, como un separador de dígitos para mejorar la legibilidad, tal como se muestra en el ejemplo siguiente.
Dim byteValue3 As Byte = &B1100_1001
Console.WriteLine(byteValue3)
' The example displays the following output:
' 201
A partir de Visual Basic 15.5 también puede usar el carácter de subrayado (_
) como separador inicial entre el prefijo y los dígitos hexadecimales, binarios u octales. Por ejemplo:
Dim number As Byte = &H_6A
Para usar el carácter de subrayado como separador inicial, debe agregar el elemento siguiente al archivo del proyecto de Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para más información, consulte Selección de la versión del lenguaje de Visual Basic.
sugerencias de programación
Números negativos. Dado que
Byte
es un tipo sin signo, no puede representar un número negativo. Si usa el operador unario menos (-
) en una expresión que se evalúa como tipoByte
, Visual Basic convierte primero la expresión enShort
.Conversiones de formato. Cuando Visual Basic lee o escribe archivos o cuando llama a archivos DLL, métodos y propiedades, puede realizar la conversión automáticamente entre formatos de datos. Los datos binarios almacenados en matrices y variables
Byte
se conservan durante dichas conversiones de formato. No debe usar una variableString
para los datos binarios, ya que su contenido se puede dañar durante la conversión entre formatos ANSI y Unicode.Ampliación. El tipo de datos
Byte
se amplía aShort
,UShort
,Integer
,UInteger
,Long
,ULong
,Decimal
,Single
oDouble
. Esto significa que puede convertir aByte
en cualquiera de estos tipos sin que se produzca un error System.OverflowException.Caracteres de tipo.
Byte
no tiene caracteres de tipo literal ni caracteres de tipo identificador.Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.Byte.
Ejemplo
En el ejemplo siguiente, b
es una variable Byte
. Las instrucciones muestran el rango de la variable y la aplicación de operadores de desplazamiento de bits en ella.
' 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)