Wie wird eine 32-Bit-Ganzzahl von unsigned nach signiert in MySQL oder PHP umgewandelt?

8

Ich habe eine Zeichenfolge in PHP (stammt von einer Datenquelle), die eine formatierte vorzeichenlose 32-Bit-Ganzzahl darstellt. Ich muss es als signierte 32-Bit-Integer in einer MySQL-Datenbank speichern, damit ich es später aus PHP abrufen und als (möglicherweise negative) vorzeichenbehaftete Integer-Konstante verwenden kann (da PHP nicht t haben vorzeichenlose Ganzzahlen).

Also, was ich brauche, ist eine Konvertierungsmethode, entweder für PHP oder MySQL. Es sollte nicht plattformabhängig sein (keine Endian / 32/64-Bit-Probleme).

Ich weiß, wie man einen vorzeichenbehafteten Integer mit MySQL in Unsigned umwandelt:

%Vor%

Aber ich kann nicht anders herum arbeiten (Hinweis: MySQL verwendet 64-Bit-Arithmetik beim Umwandeln).

Danke.

    
Alex 18.07.2009, 13:13
quelle

2 Antworten

0

Dies:

%Vor%

scheint zu funktionieren, obwohl es etwas langsam ist.

    
Alex 19.07.2009, 10:31
quelle
3

Wenn Sie einfach die Zahl in PHP in eine Ganzzahl umwandeln, wird es den Trick machen.

%Vor%

gibt

%Vor%

Hinweis: Wenn Sie in PHP einen vorzeichenbehafteten int in einen unsigned int umwandeln möchten, tun Sie dies einfach:

%Vor%

Beispiel:

%Vor%

gibt:

%Vor%     
FWH 18.07.2009 13:23
quelle

Tags und Links