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实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
获取python的list中含有重复值的index方法
Jun 27 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
python后端接收前端回传的文件方法
Jan 02 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
keras 如何保存最佳的训练模型
May 25 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 Python
Pyhton模块和包相关知识总结
May 12 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随机生成福彩双色球号码的2种方法
2013/02/04 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
2018/04/10 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
vue watch关于对象内的属性监听
2019/04/22 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
Python中字典和集合学习小结
2017/07/07 Python
python编程使用协程并发的优缺点
2018/09/20 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
塔吉特百货公司官网:Target
2017/04/27 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
应届毕业生的个人自我鉴定
2013/10/24 职场文书
捐款倡议书范文
2014/02/02 职场文书
员工试用期自我评价
2014/09/18 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
教师节领导致辞
2015/07/29 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
vue实现移动端div拖动效果
2022/03/03 Vue.js
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL