/ / Hexadezimale Basiskonvertierung mit maximal 4 Ziffern - php, hex

Hexadezimale Basiskonvertierung mit maximal 4 Ziffern - php, hex

Ich habe ein Problem, die hexadezimale Konvertierung in PHP zu verstehen.

Jetzt habe ich die Nummer -2.09. Ich möchte es in Hexa konvertieren, aber die Länge des Ergebnisses sollte 4 sein. Also sollte das Ergebnis sein FFFE, aber es gibt mir FFFFFFFE stattdessen.

Welche Funktion soll verwendet werden, um mir nur 4 Ziffern hexadezimal zu geben?

Derzeit verwende ich nur diese Funktion um zu konvertieren:

dechex(-2)

Antworten:

0 für die Antwort № 1

Wenn Sie absolut sicher sind, dass Sie nur 4 Bytes benötigen, um Ihre Nummer zu speichern, können Sie verwenden substr um das benötigte Teil zu erhalten:

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

0 für die Antwort № 2

Eine negative Zahl benötigt mehr Bits, um ihren Wert in hexadezimaler Version zu speichern, da auch die - Zeichen muss gespeichert werden.

Sie können also die Nummer nicht speichern -2.09 in einer hexadezimalen Darstellung von 4 Längen, noch die -2 Nummer:

Beispiel:

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

Ausgabe:

fffffffe
fffffffe

Demo