Tipo de dados UInteger
Contém inteiros não assinados de 32 bits (4 bytes) que variam em valor de 0 a 4.294.967.295.
Observações
O UInteger
tipo de dados fornece o maior valor não assinado na largura de dados mais eficiente.
O valor padrão de UInteger
é 0.
Atribuições literais
Você pode declarar e inicializar uma UInteger
variável atribuindo-lhe um literal decimal, um literal hexadecimal, um literal octal ou (a partir do Visual Basic 2017) um literal binário. Se o literal inteiro estiver fora do intervalo de (isto é, se for menor UInt32.MinValue ou maior que UInt32.MaxValue, ocorrerá um erro de UInteger
compilação.
No exemplo a seguir, inteiros iguais a 3.000.000.000 que são representados como literais decimais, hexadecimais e binários são atribuídos a UInteger
valores.
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
Nota
Você usa o prefixo &h
ou &H
para denotar um literal hexadecimal, o prefixo &b
ou &B
para denotar um literal binário e o prefixo &o
ou &O
para denotar um literal octal. Os literais decimais não têm prefixo.
A partir do Visual Basic 2017, você também pode usar o caractere de sublinhado, _
, como um separador de dígitos para melhorar a legibilidade, como mostra o exemplo a seguir.
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
A partir do Visual Basic 15.5, você também pode usar o caractere de sublinhado (_
) como um separador à esquerda entre o prefixo e os dígitos hexadecimais, binários ou octais. Por exemplo:
Dim number As UInteger = &H_0F8C_0326
Para usar o caractere de sublinhado como um separador à esquerda, você deve adicionar o seguinte elemento ao seu arquivo de projeto do Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para obter mais informações, consulte Selecione a versão da linguagem Visual Basic.
Os literais numéricos também podem incluir o UI
caractere ou ui
type para indicar o UInteger
tipo de dados, como mostra o exemplo a seguir.
Dim number = &H_0FAC_14D7ui
Dicas de programação
Os UInteger
tipos de dados e Integer
fornecem um desempenho ideal em um processador de 32 bits, porque os tipos inteiros menores (UShort
, Short
, Byte
, e SByte
), embora usem menos bits, levam mais tempo para carregar, armazenar e buscar.
Números negativos. Por
UInteger
ser um tipo não assinado, não pode representar um número negativo. Se você usar o operador unary menos (-
) em uma expressão que avalia para digitarUInteger
, o Visual Basic converte a expressão emLong
primeiro.Conformidade CLS. O
UInteger
tipo de dados não faz parte da Common Language Specification (CLS), portanto, o código compatível com CLS não pode consumir um componente que o usa.Considerações de interoperabilidade. Se você estiver fazendo interface com componentes não escritos para o .NET Framework, por exemplo, automação ou objetos COM, lembre-se de que tipos como
uint
podem ter uma largura de dados diferente (16 bits) em outros ambientes. Se você estiver passando um argumento de 16 bits para esse componente, declare-o comoUShort
em vez de em seu código gerenciado doUInteger
Visual Basic.Alargamento. O
UInteger
tipo de dados é ampliado paraLong
,ULong
,Decimal
,Single
eDouble
. Isso significa que você pode converterUInteger
para qualquer um desses tipos sem encontrar um System.OverflowException erro.Digite caracteres. Anexar os caracteres
UI
de tipo literal a um literal força-oUInteger
ao tipo de dados.UInteger
não tem caractere de tipo de identificador.Tipo de estrutura. O tipo correspondente no .NET Framework é a System.UInt32 estrutura.