为什么这个PHP代码会从这个C#代码中产生不同的值?

时间:2018-04-21 10:38:36

标签: c# php

PHP代码:

$var1 = (int)395390486;
$var1 <<= 10 & 0xFF;
print($var1);  //outputs 404879857664

C#CODE:

int var1 = 395390486;
var1 <<= 10 & 0xFF;
Debug.WriteLine(var1); //outputs 1152931840

为什么要这样做?

1 个答案:

答案 0 :(得分:0)

好的我可以通过使用以下函数转换为32位来获得PHP中的相同值:

function intval32bits($value) {
 $value = ($value & 0xFFFFFFFF);
 if ($value & 0x80000000)
 $value = -((~$value & 0xFFFFFFFF) + 1);
 return $value;
}