Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Contiene enteros de 64 bits (8 bytes) sin signo cuyo valor oscila entre 0 y 18 446 744 073 709 551 615 (más de 1,84 veces 10 ^ 19).
Comentarios
Use el tipo de datos ULong para contener datos binarios demasiado grandes para UInteger o los valores enteros sin signo más grandes posibles.
El valor predeterminado de ULong es 0.
Asignaciones de literales
Puede declarar e inicializar una variable ULong 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 ULong (es decir, si es inferior a UInt64.MinValue o mayor que UInt64.MaxValue, se produce un error de compilación.
En el ejemplo siguiente, los enteros que equivalen a 7 934 076 125 que se representan como literales binarios, hexadecimales y decimales se asignan a valores ULong.
Dim ulongValue1 As ULong = 7934076125
Console.WriteLine(ulongValue1)
Dim ulongValue2 As ULong = &H0001D8e864DD
Console.WriteLine(ulongValue2)
Dim ulongValue3 As ULong = &B0001_1101_1000_1110_1000_0110_0100_1101_1101
Console.WriteLine(ulongValue3)
' The example displays the following output:
' 7934076125
' 7934076125
' 7934076125
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 longValue1 As Long = 4_294_967_296
Console.WriteLine(longValue1)
Dim longValue2 As Long = &H1_0000_0000
Console.WriteLine(longValue2)
Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
' 4294967296
' 4294967296
' 4294967296
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 ULong = &H_F9AC_0326_1489_D68C
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 UL o ul para denotar el tipo de datos ULong, como se muestra en el ejemplo siguiente.
Dim number = &H_00_00_0A_96_2F_AC_14_D7ul
sugerencias de programación
Números negativos. Dado que
ULonges 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 tipoULong, Visual Basic convierte primero la expresión enDecimal.Conformidad con CLS. El tipo de datos
ULongno 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
ulongpueden tener un ancho de datos diferente (32 bits) en otros entornos. Si pasa un argumento de 32 bits a ese tipo de componente, declárelo comoUIntegeren lugar deULongen el código de Visual Basic administrado.Ampliación. El tipo de datos
ULongse amplía aDecimal,SingleyDouble. Esto significa que puede convertirULongen cualquiera de estos tipos sin que se produzca un error System.OverflowException.Caracteres de tipo. Al agregar el carácter de tipo literal
ULa un literal, se convierte forzosamente al tipo de datosULong.ULongno tiene ningún carácter de tipo identificador.Tipo de Framework. El tipo correspondiente en .NET Framework es la estructura System.UInt64.