2012-04-10 9 views
1

Ich möchte $_REQUEST verwenden, um eine 64-Bit-Ganzzahl zu erhalten, aber es unterstützt 64-Bit nicht. (Es wird in einen Float umgewandelt.) Ich muss diese Daten packen und an den Dienst senden. Allerdings sollte es eine große Endian-Byte-Reihenfolge sein, so dass ich das Format f (float (maschinenabhängige Größe und Darstellung)) nicht verwenden kann, um es zu packen.Wie packe ich eine 64bit Integer mit PHP32?

Ich habe versucht, es zu vier 16-Bit-Integer zu brechen, aber ich kann nicht <<, >> oder & verwenden, weil es ein Schwimmer ist.

Wie kann ich dieses Problem lösen?

Antwort

1

Verwenden Sie gmp_div_qr() mit 256 oder 65536 mehrmals, um es in 8- oder 16-Bit-Chunks zu zerlegen, und wandeln Sie diese Chunks in Strings um.

+0

Vielen Dank – Hanamaki