2016-08-30 3 views
1

Wenn ich versuche, bitweise XOR-Operation in PHP und js auszuführen, werden sie in einigen Fällen unterschiedliche Ergebnisse produzieren, zum Beispielphp bitweise XOR und js bitweise XOR produzieren unterschiedliche Ergebnisse

2166136261^101 = -2128831072 on browsers (js) 
2166136261^101 = 2166136224(php) 

Mein Verständnis ist, weil PHP ist läuft 64 Bit im Gegensatz zu 32 Bit js.

Kann mir jemand den genauen Grund sagen und ob das gelöst werden könnte, so dass beide Operationen denselben Wert ergeben. Vielen Dank!

+1

http://StackOverflow.com/Questions/24154381/Javascript-PHP-XOR-Äquivalent –

+0

Es gibt kein Problem. Dies ist das gleiche Ergebnis, nur anders interpretiert. – harold

+0

@harold, Ok, dann, wie das gleiche Ergebnis wie das Ergebnis von PHP aussehen? – Green

Antwort

-1

2,147,483,647 ist der größte mögliche positive Wert für eine ganze Zahl in 32-Bit-Computing, (es ist 2^16, die Hälfte der 32 Bits wir haben, ist die andere Hälfte für negative Zahlen vorbehalten.)

Sobald Sie verwenden eine Nummer größer als die in einem 32-Bit-System Sie beginnen, screwly Ergebnisse zu bekommen, da der Computer denkt, dass es eine negative Zahl ist. siehe https://en.wikipedia.org/wiki/Integer_(computer_science)