鱼C论坛

 找回密码
 立即注册
查看: 3727|回复: 6

[已解决]Python 可以计算很大很大的数据,但是……

[复制链接]
发表于 2023-3-23 12:59:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么print(2 ** 2 ** 32)无法计算出结果,而print( (2 ** 2) ** 32) 就可以计算出结果呢?
最佳答案
2023-3-23 13:01:45
原因在于计算顺序和数值大小。

2 ** 2 ** 32的计算顺序是从右到左,因此首先计算2 ** 32,得到4294967296。然后再进行2 ** 4294967296,这个计算涉及的数值非常大,很容易导致计算机内存不足以存储结果,因此无法得到结果。

而(2 ** 2) ** 32的计算顺序是从左到右。首先根据括号计算2 ** 2,得到4。然后进行4 ** 32,这个计算涉及的数值较小,计算机可以轻松处理并给出结果。

所以,print(2 ** 2 ** 32)无法计算出结果,而print( (2 ** 2) ** 32)可以计算出结果的原因在于它们涉及的数值大小不同,从而导致计算难易程度的差异。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-23 13:21:44 | 显示全部楼层
isdkz 发表于 2023-3-23 13:01
原因在于计算顺序和数值大小。

2 ** 2 ** 32的计算顺序是从右到左,因此首先计算2 ** 32,得到429496729 ...

谢谢两位大神的热心解答。

(2 ** 2) ** 32的计算顺序是从左到右。---这个容易理解

2 ** 2 ** 32的计算顺序为什么是从右到左?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-1 09:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表