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

慕娘9325324
浏览 811回答 1
1回答

慕盖茨4494581

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

相关分类

Python