为了账号安全,请及时绑定邮箱和手机立即绑定

python是如何计算2^100的? (不是如何用Python计算2^100) 而且为什么不会溢

python是如何计算2^100的? (不是如何用Python计算2^100) 而且为什么不会溢

慕娘9325324 2018-07-04 09:09:22
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

在python2.7中,表示整数的有int和long两个类型。int类型和C++的int类似,都是一个固定位数的数;long则是一个理论上可以存储无限大数的数据类型。当你的数大到可能溢出时,python就会机智的帮你转换成long,这样就避免了溢出。而python3之后整数只有一个可以放任意大数的int了。可是无论哪种,都是采用了特殊的方法实现了不会溢出的大整数。整数溢出的本质就是空间不够无法完整存放数据,因此对付溢出的思路就是加空间,1Byte hold不住上2Byte,2Byte不行再加。python中的大整数就是用了这个原理,把一个格外大的数拆分成若干个byte,然后把每个byte存下来。然后再针对多字整型实现一套操作,放在用户面前的就是一个用起来很省心的绝对没有溢出的good int了。但相应的,由于每次运算要处理多个byte,效率下降是必然的了

查看完整回答
反对 回复 2018-07-30
  • 1 回答
  • 0 关注
  • 808 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信