鱼C论坛

 找回密码
 立即注册
查看: 1457|回复: 4

[已解决]Python第006讲 课后习题求助

[复制链接]
发表于 2018-2-3 22:29:25 | 显示全部楼层 |阅读模式

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

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

x
为什么print(2**2**32)会卡住Python shell,而print((2**2)**32)却不会啊?
我自己试了试,发现(2**2)**32和4**32的结果一样,大神能解释一下吗?
这两串代码程序分别是按什么顺序计算的啊?
最佳答案
2018-2-4 19:35:41
1.把数字缩小下就知道了2**2**4=2**(2**4)=2**16=65536=256*256,而(2**2)**4=2**(2*4)=2**8=256
2. 2**2**32=2**4294967296,而(2**2)**32=2**(2*32)=2**64=4**32,你看2**4294967296跟2**64 差了多少个量级,所以明白了吗?量级差的太多了电脑没崩溃不错了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-3 22:32:05 | 显示全部楼层
2**2**32  等于 2**(2**32)
懂了不
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-3 22:44:32 | 显示全部楼层
幂运算符集合顺序是从右向左的
也就是说2**2**32是等于2**(2**32),所以和这个(2**2)**32运算结果不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-4 15:34:16 | 显示全部楼层
数据计算的太大可能跟电脑配置也有关系  2**2**32 是计算的2的(2**32)的次方幂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-4 19:35:41 | 显示全部楼层    本楼为最佳答案   
1.把数字缩小下就知道了2**2**4=2**(2**4)=2**16=65536=256*256,而(2**2)**4=2**(2*4)=2**8=256
2. 2**2**32=2**4294967296,而(2**2)**32=2**(2*32)=2**64=4**32,你看2**4294967296跟2**64 差了多少个量级,所以明白了吗?量级差的太多了电脑没崩溃不错了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 04:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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