【发布时间】:2011-02-17 14:26:56
【问题描述】:
我有这个代码:
<?php
$integer = 33963677451;
$integer &= 0xFFFFFFFF;
echo $integer;
?>
但是,当我执行它时,输出是
-396060917
Python 中的相同函数
if __name__ == '__main__':
integer = 33963677451
integer &= 0xFFFFFFFF
print integer
输出是
3898906379
似乎 PHP 不能存储大变量。你们知道如何在 PHP 中获得与 Python 中相同的结果吗?
谢谢!
【问题讨论】:
-
这不是 Python 中的同一个函数!
0F FF FF FF FF FF != FF FF FF FF -
在 Python 3 中不会发生,如果您使用 long (
33963677451L),也不会在 Python 2 中发生。 (适用于 4 和 6 字节操作数。) -
虽然两个数字不同,但问题的本质是一样的:php不支持开箱即用的无符号整数
-
@Foo:Python 也没有。但是,Python 有 bigints 并使用它们来避免溢出。