2017-03-15 4 views
0

Ich habe eine Reihe von Hex-Bytes, etwa so:Treat Array-Werte als hex ascii nicht

4E44B4096780031713077AB80040052F2F0C1335000000046D372B27230F150E04000000FFFFFF020000FFFFFFFFFF

ich diese in Bytes geteilt durch die Verwendung

$ arr1 = str_split ($ str, 2);

Das gibt mir eine schöne Anordnung der Bytes. PHP scheint jedoch die Array-Elemente als ASCII, nicht als Hex zu behandeln. Das macht es mir unmöglich, Bitmasken usw. auf ihnen zu machen.

Wie kann ich diese Bytes als hex deklarieren?

+0

können Sie uns zeigen, wie Ihr Array sieht aus wie –

+0

Array ( [0] => 4E [1] => 44 [2] => B4 [3] => 09 [4 =]> 67 [5] => 80 [6] => 03 [7] => 17 [8] => 13 [9] => 07 – Mikkel

Antwort

0

Hexadezimale und noch mehr ASCII sind keine Variablentypen und dies in jeder Sprache.

ASCII ist nur eine Zeichentabelle, keine Zeichenkette.
Hexadezimal ist eine Möglichkeit, eine Zahl in der Basis 16 darzustellen, aber diese Darstellung selbst ist nicht länger eine Zahl, sondern eine Zeichenfolge.

Die Konvertierung einer hexadezimalen Zeichenfolge in Dezimal kann mit der Funktion durchgeführt werden. Da Sie ein Array von hexadezimalen Strings haben, können Sie array_map verwenden, um jedes Element zu transformieren.

$result = array_map('hexdec', str_split($str, 2)); 
+0

vielen Dank. ich diese und es testete scheint zu funktionieren, aber ich habe die zusätzliche Herausforderung, a) die Sequenz von 2 (oder mehr) Bytes umzukehren, b) sie zu kombinieren, c) Bitmasken auf ihnen zu machen. Ich kann mir nicht vorstellen, wie man a & b macht - immer wenn das Ergebnis falsch ist. Irgendwelche Ideen, wie man das macht? – Mikkel

+0

@Mikkel: Da eine "vampirisierende" Frage von SO sehr abzuraten ist, schlage ich vor, eine neue Frage für diese Aufgabe zu stellen (nehmen Sie sich Zeit, um zu erklären, was Sie zu tun versuchen und zeigen Beispiele für Eingabe und gewünschte Ausgabe für einen oder mehrere Gegenstände). Sie können jedoch den Link zu dieser neuen Frage in Kommentaren veröffentlichen. –

+0

Richtig bist du - und hier ist es http://stackoverflow.com/questions/42837696/flipping-and-combining-hex-based-array-values – Mikkel