鱼C论坛

 找回密码
 立即注册
查看: 3174|回复: 12

第6节课后习题有一个让计算机崩溃的小代码 2**2**3

[复制链接]
发表于 2016-6-14 11:12:02 | 显示全部楼层 |阅读模式

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

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

x
为什么写成(2**2)**3 计算机就可以正常计算出值来
写成 2**2**32电脑就没有反应 真的崩溃了
我这算不算钻牛角尖  还请知道的朋友给与解释哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-6-14 11:24:01 | 显示全部楼层
我感觉可能是运算顺序的问题,应该是先计算了2**32,所以...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-14 11:38:23 | 显示全部楼层
数学问题,先计算a=2^32,后计算2^a
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-14 12:01:09 | 显示全部楼层
1. 2 ** 2 ** 32 的计算量非常大,会导致系统崩溃

2. (2 ** 2) ** 3 我口算都能算出来时 64,所以~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-14 12:06:24 | 显示全部楼层
然而我感觉你应该是问题写错了,你应该是要问:

为何 2 ** 2 ** 32 会崩溃,然而 (2 ** 2) ** 32 则不会有问题,对吗?

这其实跟 ** 运算符的结合性有关系,它是从右向左结合的,所以你会发现:

2 ** 2 ** 3 == 2 ** (2 ** 3) == 2 ** 8 == 256



(2 ** 2) ** 3 == 4 ** 3 == 64

所以

2 ** 2 ** 32 == 2 ** 4294967296,不崩溃才怪~~

(2 ** 2) ** 32 == 4 ** 32 == 18446744073709551616

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2016-6-14 12:18:12 | 显示全部楼层
数字太大了吧...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-14 13:41:05 | 显示全部楼层
多谢小甲鱼老师的指点
原来是**是从右往左结合的  太神奇了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-27 10:12:09 | 显示全部楼层
又学到一手,**从右向左计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-27 21:00:51 | 显示全部楼层
原来是从右向左的怪不得
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-28 10:09:23 | 显示全部楼层
学到了学到了哎**是从右向左结合的,这个知识虽然感觉有点冷不过说不定有的时候又很有用……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-2 13:41:17 | 显示全部楼层
加个括号试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-4 10:56:20 | 显示全部楼层
小甲鱼 发表于 2016-6-14 12:06
然而我感觉你应该是问题写错了,你应该是要问:

为何 2 ** 2 ** 32 会崩溃,然而 (2 ** 2) * ...

原来如此!TVT 找到正确答案了,感谢!0v0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-8 17:12:20 | 显示全部楼层
小甲鱼 发表于 2016-6-14 12:06
然而我感觉你应该是问题写错了,你应该是要问:

为何 2 ** 2 ** 32 会崩溃,然而 (2 ** 2) * ...

为啥我没有奔溃,而是毫无反应?
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 2**2**32
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 19:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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