php bitwise XOR and js bitwise XOR producing different results

扶醉桌前 提交于 2019-12-02 13:21:38

问题


When I try to perform bitwise XOR operation in php and js, they are producing different results in some cases , for example

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

My understanding is because php is running 64 bit as opposed to 32 bit js.

Can anyone tell me the exact reason and if this could be solved so that both operations result in same value. Thanks!


回答1:


2,147,483,647 is the biggest possible positive value for an integer in 32 bit computing, (it's 2^16, half of the 32 bits we have, the other half are reserved for negative numbers.)

Once you use a number bigger than that in a 32 bit system you start getting screwy results as the computer thinks it's a negative number. see https://en.wikipedia.org/wiki/Integer_(computer_science)



来源:https://stackoverflow.com/questions/39234130/php-bitwise-xor-and-js-bitwise-xor-producing-different-results

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!