UInteger (tipo de datos)
Contiene enteros de 32 bits (4 bytes) sin signo cuyo valor oscila entre 0 y 4 294 967 295.
Comentarios
El tipo de datos UInteger
proporciona el mayor valor sin signo en el ancho de datos más eficaz.
El valor predeterminado de UInteger
es 0.
Asignaciones de literales
Puede declarar e inicializar una variable UInteger
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 entero está fuera del intervalo de UInteger
(es decir, si es inferior a UInt32.MinValue o mayor que UInt32.MaxValue, se produce un error de compilación.
En el ejemplo siguiente, los enteros que equivalen a 3 000 000 000 que se representan como literales binarios, hexadecimales y decimales se asignan a valores UInteger
.
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
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 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 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 UInteger = &H_0F8C_0326
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.
Los literales numéricos también pueden incluir el carácter de tipo UI
o ui
para denotar el tipo de datos UInteger
, como se muestra en el ejemplo siguiente.
Dim number = &H_0FAC_14D7ui
sugerencias de programación
Los tipos de datos UInteger
y Integer
proporciona un rendimiento óptimo en un procesador de 32 bits, porque los tipos de entero más pequeños (UShort
, Short
, Byte
y SByte
) tardan más en cargarse, almacenarse y capturarse, a pesar de que utilizan menos bits.
Números negativos. Dado que
UInteger
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 tipoUInteger
, Visual Basic convierte primero la expresión enLong
.Conformidad con CLS. El tipo de datos
UInteger
no forma parte de Common Language Specification (CLS), por lo que el código conforme a CLS no puede consumir un componente que lo utilice.Consideraciones de interoperabilidad. Si interactúa con componentes no escritos para .NET Framework, por ejemplo, objetos de Automation o COM, recuerde que tipos como
uint
pueden tener un ancho de datos diferente (16 bits) en otros entornos. Si pasa un argumento de 16 bits a ese tipo de componente, declárelo comoUShort
en lugar deUInteger
en el código de Visual Basic administrado.Ampliación. El tipo de datos
UInteger
se amplía aLong
,ULong
,Decimal
,Single
yDouble
. Esto significa que puede convertirUInteger
en cualquiera de estos tipos sin que se produzca un error System.OverflowException.Caracteres de tipo. Al agregar el carácter de tipo literal
UI
a un literal, se convierte forzosamente al tipo de datosUInteger
.UInteger
no tiene ningún carácter de tipo identificador.Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.UInt32.