怎么可以让php代码:62837 << -16 在windows和linux中得到相同的结果? 进行des加密操作,发现在windows和linux里得到的结果不一样,发现是createkey过程中有这个运算,从这里开始不一样的。网络查询得知是int溢出导致,windows下是正确的。建议通过gmp扩展来操作,但是并未找到具体用法,求指教win的结果:-176881664lin的结果:-759700962142060544 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么是 62837 << -16而不是 62837 << 16 ??? thinkphp自带的des加密类,里面是这么算的。我在网上找的多也是这么写的。$right ^= ($temp << -16); -759700962142060544这显然是 64位 杭警钟的结果!虽然 32位 系统中 62837 << -16 和 62837 << 16 是没有区别的但你怎么就知道在 64位 系统中也是一样的呢?代码不是你写的,人家用没问题,而你用就有问题。这只能说明是操作系统的问题再说 php 直到 7 才正式发布 64 位的版本,用 32位 源码在 64位 环境中编译,多少是要有点问题的 我想学php,看什么书好啊 谁帮我一下啊 想挑战一下吗? php5 iis5 集成环境提交表单提示405错误 exec() 的使用问题 php empty()与isset()的区别是什么? 帮忙看个源码 PHP二维数组输出 同样一段代码,在WINDOWS下、LINUX下运行的结果为何会不一样? 我的页面回退时怎么原来的输入都没有了 求一段删除时根据条件做出不同处理的代码 PHP发送表单内容到指定邮箱,能发送多个邮箱吗?
而不是 62837 << 16 ???
$right ^= ($temp << -16);
这显然是 64位 杭警钟的结果!虽然 32位 系统中 62837 << -16 和 62837 << 16 是没有区别的
但你怎么就知道在 64位 系统中也是一样的呢?代码不是你写的,人家用没问题,而你用就有问题。这只能说明是操作系统的问题
再说 php 直到 7 才正式发布 64 位的版本,用 32位 源码在 64位 环境中编译,多少是要有点问题的