php 数据计算的一个问题

qbless 发布于 2013/04/25 20:39
阅读 318
收藏 0
PHP
<?php
$o = -1247300156;
$hehe = 0x5d588b65;

echo $rs = (int) ($o * $hehe);
echo '<hr>';
echo $rs = bcmul($o, $hehe);

windows:

1782325760

-1953376743918394796


linux:

-1953376743918394796

-1953376743918394796


果球解惑。同样的int转型,在windows,linux下,居然出现了不同的数据结果

在C#,JAVA下面,也是第一个结果,我主要是想知道第一个结果的原理

加载中
0
游侠
游侠
溢出了吧,操作系统多少位?
qbless
qbless
window下64 32都是第一个结果
0
hylent
hylent

和你php的版本有关啊  一般的都是把target机默认当初32位的编译的php  可以试试 64位版的php for winows

通过 PHP_INT_MAX 这个常量可以看看支持的int型的最大值

hylent
hylent
-1953376743918394796 % PHP_INT_MAX
qbless
qbless
问题是:第一个结果,它的原理是如何转换的
返回顶部
顶部