Saltar al contenido

¿Cómo declarar un entero de 32 bits sin signo?

Solución:

El código de la respuesta actualmente aceptada provoca el siguiente error en mi sistema:

mensaje de error

Esto se debe a que PowerShell siempre intenta convertir los valores hexadecimales a int primero, por lo que incluso si lanza a uint64, el entorno se quejará si el número tiene un valor int negativo. Puede ver esto en el siguiente ejemplo:

PS C:> [uint64] (-1)
Cannot convert value "-1" to type "System.UInt64". Error: "Value was either too large or too small for a UInt64."
At line:1 char:26
+ Invoke-Expression $ENUS; [uint64] (-1)
+                          ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastIConvertible

Necesita lanzar la representación de cadena del número a uint64 para evitar esto:

[uint64]"0xff000000" + [uint64]"0xAA"

0xff00000AA es demasiado grande para un entero sin signo de 32 bits, use uint64

PS> [uint64]0xff00000AA
68451041450
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *