php - 不同机器上的按位运算结果不同

标签 php bit-manipulation bitwise-operators bit-shift

我正在使用以下代码在 PHP 中实现一个简单的位旋转:

(($n>>1)&0xFFFFFFFF)|(($n&0x00000001)<<31)

当我在不同的机器上运行这段代码时,我得到了完全不同的结果。起初我认为这与字节顺序有关,但它们都是 x86,我只是使用了不同版本的 PHP。

是什么导致了这种行为?

编辑:没关系我之前的例子,它是不正确的

最佳答案

问题肯定是 PHP_INT_SIZE 是 4 而不是 8 造成的

关于php - 不同机器上的按位运算结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54690058/

相关文章:

php - Laravel Blade 的 json 输出对象带有单引号?

nginx - 如何在 Amazon EC2 AMI 实例上使用 nginx 一致地设置 PHP-FPM 5.6

algorithm - 有没有办法把两个角压缩成2个字节?

mysql - 如何使用 MySQL 存储和改变位图/位集?

C: Bitwise NOT on certain bit

phpMyAdmin 没有登录屏幕

java - 如何使用位操作实现 Karatsuba 乘法

c - 如何将 2 个 char 变量组合并存储在一个整型变量中?

bit-manipulation - 是否可以编写一个没有控制流和严格按位运算的两个整数相加的函数?

php - MySQL嵌套资源(透视表)权限查看/更新/管理