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 相关文章推荐
pymssql数据库操作MSSQL2005实例分析
May 25 Python
Python装饰器入门学习教程(九步学习)
Jan 28 Python
python自动12306抢票软件实现代码
Feb 24 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
自学python的建议和周期预算
Jan 30 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
Python 常用模块 re 使用方法详解
Jun 06 Python
在Python中预先初始化列表内容和长度的实现
Nov 28 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
python破解同事的压缩包密码
Oct 14 Python
python openpyxl模块的使用详解
Feb 25 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
重新认识php array_merge函数
2014/08/31 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
PHP微信支付实例解析
2016/07/22 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
python处理按钮消息的实例详解
2017/07/11 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python下10个简单实例代码
2017/11/15 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
python实现简单的文字识别
2018/11/27 Python
Django logging配置及使用详解
2019/07/23 Python
python实现代码统计器
2019/09/19 Python
基于python的BP神经网络及异或实现过程解析
2019/09/30 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
美国折扣网站:jClub
2017/08/07 全球购物
彪马英国官网:PUMA英国
2019/02/11 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
如何开启linux的ssh服务
2015/02/14 面试题
成功的酒店创业计划书
2013/12/27 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
信息技术研修心得体会
2016/01/08 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫