Tipo di dati Byte (Visual Basic)
Contiene interi senza segno a 8 bit (1 byte) compresi tra 0 e 255.
Osservazioni:
Usare il tipo di dati Byte
per contenere dati binari.
Il valore predefinito di Byte
è 0.
Assegnazioni di valori letterali
È possibile dichiarare e inizializzare una variabile Byte
assegnandole un valore letterale decimale, un valore letterale esadecimale, un valore letterale ottale o (a partire da C# 2017) un valore letterale binario. Se il valore letterale integrale è esterno all'intervallo di Byte
, vale a dire se è minore di Byte.MinValue o maggiore di Byte.MaxValue, si verifica un errore di compilazione.
Nell'esempio seguente, i valori interi uguali a 201 rappresentati some valori letterali decimali, esadecimali o binari vengono convertiti in modo implicito da valori integer a valori 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
Si utilizza il prefisso &h
o &H
per indicare un valore letterale esadecimale, il prefisso &b
o &B
per indicare un valore letterale binario e il prefisso &o
o &O
per indicare un valore letterale ottale. I valori letterali decimali non hanno prefissi.
A partire da Visual Basic 2017, è possibile anche usare il carattere underscore, _
, come separatore di cifre per migliorare la leggibilità, come illustrato nell'esempio seguente.
Dim byteValue3 As Byte = &B1100_1001
Console.WriteLine(byteValue3)
' The example displays the following output:
' 201
A partire da Visual Basic 15.5, è possibile anche usare il carattere underscore (_
) come separatore iniziale tra il prefisso e le cifre esadecimali, binarie oppure ottali. Ad esempio:
Dim number As Byte = &H_6A
Per usare il carattere underscore come separatore iniziale, è necessario aggiungere l'elemento seguente al file di progetto Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Per altre informazioni, vedere Selezionare la versione del linguaggio visual Basic.
Suggerimenti per la programmazione
Numeri negativi. Poiché
Byte
è un tipo senza segno, non può rappresentare un numero negativo. Se si utilizza l'operatore unario meno (-
) su un'espressione che restituisce il tipoByte
, Visual Basic converte innanzitutto l'espressione inShort
.Conversioni tra formati Quando Visual Basic legge o scrive file o quando chiama DLL, metodi e proprietà, può eseguire automaticamente la conversione tra formati di dati. I dati binari archiviati in variabili e matrici
Byte
vengono mantenuti durante tali conversioni di formato. Non è consigliabile usare una variabileString
per i dati binari, perché il relativo contenuto può essere danneggiato durante la conversione tra formati ANSI e Unicode.Ampliamento. Il tipo di dati
Byte
può ampliarsi nel tipoShort
,UShort
,Integer
,UInteger
,Long
,ULong
,Decimal
,Single
oDouble
. È pertanto possibile convertireByte
in uno di questi tipi senza generare un errore System.OverflowException.Caratteri di tipo.
Byte
non ha alcun carattere di tipo letterale o di tipo identificatore.Tipo di Framework. Il tipo corrispondente in .NET Framework è la struttura System.Byte.
Esempio
Nell'esempio seguente b
è una variabile Byte
. Le istruzioni illustrano l'intervallo della variabile e l'applicazione di operatori di spostamento a bit.
' 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)