热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3中的整数溢出

如何解决《Python3中的整数溢出》经验,为你挑选了1个好方法。

我是Python的新手,我正在阅读这个页面,在那里我看到了一个奇怪的声明:

if n+1 == n:  # catch a value like 1e300
    raise OverflowError("n too large")

x等于大于它的数字?!我感觉到了原力的干扰.

我知道在Python 3中,整数没有固定的字节长度.因此,没有整数溢出,就像C的int工作方式一样.但当然内存无法存储无限数据.

我认为这就是为什么结果n+1可能是相同的n:Python不能分配更多的内存来预先形成总和,所以它被跳过,并且n == n是真的.那是对的吗?

如果是这样,这可能导致程序的错误结果.为什么Python不能在操作不可能时引发错误,就像C++一样std::bad_alloc

即使n不是太大而且检查评估为假,result- 由于乘法 - 将需要更多的字节.可能result *= factor因同样的原因而失败?

我在官方Python文档中找到了它.这是检查大整数/可能整数"溢出"的正确方法吗?



1> harold..:

整数在Python中不起作用.

但浮动确实如此.这也是评论说的原因1e300,这是科学记谱法中的一个浮点数.


推荐阅读
author-avatar
潇潇沐林风_921
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有