?
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,效率下降是必然的了
添加回答
举报
0/150
提交
取消