鱼C论坛

 找回密码
 立即注册
查看: 1296|回复: 5

[已解决]有关指数的问题,006后面的作业

[复制链接]
发表于 2018-2-1 23:42:37 | 显示全部楼层 |阅读模式

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

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

x
print(2 ** 2 ** 32)

# 一般很多机子都会在一会儿之后:Memory Overflow,内存不够用。
# 设计到幂操作,结果都是惊人滴。

为什么计算不了  而print((2 ** 2) ** 32) 可以计算
最佳答案
2018-2-1 23:47:34
上面一个是计算 2的  (2^32)次方,
下面一个是计算4的32次方,也就是2的64次方。
比较一下2^32和64的大小吧,再变成幂计算。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-1 23:47:34 | 显示全部楼层    本楼为最佳答案   
上面一个是计算 2的  (2^32)次方,
下面一个是计算4的32次方,也就是2的64次方。
比较一下2^32和64的大小吧,再变成幂计算。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-2 07:55:22 From FishC Mobile | 显示全部楼层
结合性的问题,幂运算从右往左结合,所以第一个是2**(2**32),第二个是(2*2)**32
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-2 09:38:22 From FishC Mobile | 显示全部楼层
**优先级比左边大,比右边小,前者没有用括号,因此先算2**32,如果将2**32看成n,则是计算2**n。后者由于有括号将2**2括起来,因此得到4**32。二者计算计算并不一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-2 12:01:06 | 显示全部楼层
你把数变小点,比较下2**2**4与(2**2)**4的差别,就知道了。
2**2**4=2**(2**4)=2**16=65536
(2**2)**4=2**(2x4)=2**8=256
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-3 23:56:23 | 显示全部楼层
谢谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-6 20:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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