问题描述
以下是c#和PHP7中的左移代码。
为什么以及如何将 PHP 输出与 C# 输出匹配?
提前致谢。
C#
var ret = 0xFFFFFFFF;
var a=ret << 8;
Console.WriteLine(a);
4294967040
在哪里
$ret = 0xFFFFFFFF;
$a=$ret << 8;
echo $a;
1099511627520
解决方法
不要使用 var 关键字,使用明确的 long 代替它:
long ret = 0xFFFFFFFF;
long a = ret << 8;
Console.WriteLine(a);
var 将使用 32 位整数而不是 64 位整数。