将整数掩码为32位的最佳方法?

时间:2018-10-04 22:35:42

标签: php hex integer-overflow

我正在运行PHP的64位安装,并且据我了解,没有办法将变量专门声明为32位unsigned int

以以下代码为例:

$test1 = 0x5BE0CD19;
$test2 = 0x3587272B;
$test3 = 0x1F85C98C;
$test4 = 0x428A2F98;
$test5 = 0x61626380;
$test6 = ($test1 + $test2 + $test3 + $test4 + $test5);

给我结果0x154da50e8

当前,我执行以下操作以将变量屏蔽为32位:

$test6 &= (1 << 32) - 1;

我得到了期望的结果:0x54da50e8

出于性能原因,我想知道,是否有更好的方法来执行此操作,而不必在发生溢出的情况下对每个变量使用&= (1 << 32) - 1;? 经常在每次计算的基础上向每个变量添加掩码,这很混乱。

谢谢

0 个答案:

没有答案