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深入06——python的内存管理详解
Dec 07 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
机器学习python实战之决策树
Nov 01 Python
python自动裁剪图像代码分享
Nov 25 Python
python学生管理系统代码实现
Apr 05 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
Django-imagekit的使用详解
Jul 06 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
js实现下拉框二级联动
2018/12/04 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解python中executemany和序列的使用方法
2017/08/12 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
python归并排序算法过程实例讲解
2020/11/04 Python
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
大学生毕业自我评价范文分享
2013/11/11 职场文书
教师的实习自我鉴定
2013/12/17 职场文书
四年级科学教学反思
2014/02/10 职场文书
优质服务演讲稿
2014/05/14 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
小学运动会通讯稿
2015/07/18 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书