首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP在逐位运算中的Infinit值返回奇怪的值

PHP在逐位运算中的Infinit值返回奇怪的值
EN

Stack Overflow用户
提问于 2016-01-20 23:55:49
回答 1查看 666关注 0票数 17

今天,我在php中测试了一个有趣的发现,比如INF ^ 0 (^ =>异或位运算符),它在64位系统中给了我int(-9223372036854775808) =>最大可能的负值。

但随后我问自己:“当”正无穷“表示9223372036854775807 ( 1上63位,前导0)和0( 0 => 0 xor 0 = 0上64位)时,为什么异或中的结果为负值?positive的值是什么?它背后的计算是什么?当我使用”负infinit“(0 => 1 xor 0 = 1上的前导1对前导0?)时,为什么我会得到(正确的?)负值?”

另一个有趣的是,这只发生在PHP版本5.5.9-1上,而不是在5.3.x上。和5.6.x (我已经测试过了)!也许有人知道那里发生了什么?在三个版本上进行了测试,但仅在我的(5.5.9-1)上给出了这些结果:

只是想让你们知道,这只是一个抽象的游戏,我只是为了好玩,但我发现它很有趣。也许有人可以帮我,或者给我解释一下我的错误想法?如果有人需要更多的信息,请告诉我!

编辑:相应地,如果能得到一个完整的答案,那就太好了,所以我引用他的话:why does 5.5 and 5.6 result in PHP_INT_MIN, and everything else return 0?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34904642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档