/ / Conversión de base hexadecimal con un máximo de 4 dígitos - php, hexadecimal

Conversión de base hexadecimal con un máximo de 4 dígitos - php, hex

Tengo un problema para entender la conversión hexadecimal en PHP.

Ahora tengo el numero -2.09. Quiero convertirlo a hexa, pero la longitud del resultado debería ser 4. Por lo tanto, el resultado debería ser FFFE, pero me da FFFFFFFE en lugar.

¿Cuál es la función que se utilizará para darme solo 4 dígitos hexadecimales?

Actualmente estoy usando solo esta función para convertir:

dechex(-2)

Respuestas

0 para la respuesta № 1

Si está completamente seguro de que solo necesitará 4 bytes para almacenar su número, puede usar substr para recuperar la pieza que necesitas:

   $a = dechex(-2);
=> "fffffffffffffffe"
substr($a, -4);
=> "fffe"

0 para la respuesta № 2

Un número negativo necesita más bits para almacenar su valor en versión hexadecimal, porque también - signo debe ser almacenado.

Por lo tanto, no puede almacenar el número -2.09 en una representación hexadecimal de 4 longitudes, ni la -2 número:

Ejemplo:

echo dechex((float)-2.09);
echo "n";
echo dechex(-2);

Salida:

fffffffe
fffffffe

manifestación