python 整数越界问题详解


Posted in Python onJune 27, 2019

python 内部自带大整数运算能力,整数运算不会溢出,只要内存足够,就oK

下面的例子演示了两个32位整数加法的情况(通过位运算实现),为了模拟溢出的效果,必须人工的进行位运算,~运算符除了求反,还是二进制的补运算符,运算过后的二进制数字按照补码解释,例如 ~(0011 1100) = (1100 0011) = -61

def getSum(a, b):
    """
    :type a: int
    :type b: int
    :rtype: int
    """
    MAX = 0X7fffffff
    MIN = 0X80000000
    while b != 0 :
     a,b = a^b,(a&b)<<1
     print(" a = {0:b},b = {1:b}".format(a,b))
    return a 
def getSum_(a, b):
    """
    :type a: int
    :type b: int
    :rtype: int
    """
    MAX = 0x7FFFFFFF
    MIN = 0x80000000
    mask = 0xFFFFFFFF
    while b != 0:
      a, b = (a ^ b) & mask, ((a & b) << 1) & mask
      print(type(a))
      print(" a = {0:b},b = {1:b}".format(a,b))
    return a if a <= MAX else ~(a^mask)
   
print(getSum_(-1,-1))
print(getSum(-1,1))

补充:python 循环内部添加多个条件判断会出现越界

1.循环遍历数组是,想添加条件修改时,只删除第一个

# -*- coding: utf-8 -*-

a=[11,22,33,44,55]

for i in a:
  if i == 11 or i ==22:
    a.remove(i)

for i in a:
  print(i)

'''
33
55
[Finished in 0.1s]
'''

2.应该引入被删除为一个数组

# -*- coding: utf-8 -*-

a=[11,22,33,44,55]

b=[]

for i in a:
  if i == 11 or i ==22:
    b.append(i)
for i in b:
  a.remove(i)
for i in a:
  print(i)

'''
33
44
55
[Finished in 0.1s]
'''

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python正则表达式之对号入座篇
Jul 24 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
Python数据类型之列表和元组的方法实例详解
Jul 08 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
python实现字符串和数字拼接
Mar 02 Python
详解scrapy内置中间件的顺序
Sep 28 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
pip install命令安装扩展库整理
Mar 02 Python
利用Python网络爬虫爬取各大音乐评论的代码
Apr 13 Python
django中websocket的具体使用
Jan 22 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 #Python
python 反编译exe文件为py文件的实例代码
Jun 27 #Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 #Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 #Python
对python3 sort sorted 函数的应用详解
Jun 27 #Python
python 批量解压压缩文件的实例代码
Jun 27 #Python
python opencv 图像拼接的实现方法
Jun 27 #Python
You might like
第十三节--对象串行化
2006/11/16 PHP
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
详解jQuery事件
2017/01/13 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
NodeJS实现自定义流的方法
2018/08/01 NodeJs
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python编写一个优美的下载器
2018/04/15 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
python 瀑布线指标编写实例
2020/06/03 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
护理专业自我鉴定
2014/01/30 职场文书
运动会致辞稿50字
2014/02/04 职场文书
语文课外活动总结
2014/08/27 职场文书
六查六看心得体会
2014/10/14 职场文书
财产分割协议书范本
2014/11/03 职场文书
如何书写邀请函?
2019/06/24 职场文书