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通过文件头判断文件类型
Oct 30 Python
json跨域调用python的方法详解
Jan 11 Python
python实现折半查找和归并排序算法
Apr 14 Python
Python 模拟购物车的实例讲解
Sep 11 Python
python编程线性回归代码示例
Dec 07 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
django进阶之cookie和session的使用示例
Aug 17 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
python assert的用处示例详解
Apr 01 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
python 实现视频 图像帧提取
Dec 10 Python
TensorFlow实现打印每一层的输出
Jan 21 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生成带有雪花背景的验证码
2008/09/28 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
Javascript堆排序算法详解
2014/12/03 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
教你如何在Node.js中使用jQuery
2016/08/28 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
python基础教程之字典操作详解
2014/03/25 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python 日期区间处理 (本周本月上周上月...)
2019/08/08 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
信息专业个人的自我评价
2013/12/27 职场文书
加拿大留学自荐信
2014/01/28 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
语文教育专业求职信
2014/06/28 职场文书
学校创先争优活动总结
2014/08/28 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
2014年基建工作总结
2014/12/12 职场文书
质量保证书
2015/01/17 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
Java实现聊天机器人完善版
2021/07/04 Java/Android
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript