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 相关文章推荐
使用IPython来操作Docker容器的入门指引
Apr 08 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
python爬取网易云音乐评论
Nov 16 Python
python实现矩阵打印
Mar 02 Python
使用Python实现跳帧截取视频帧
May 31 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
Python通过4种方式实现进程数据通信
Mar 12 Python
解决python使用list()时总是报错的问题
May 05 Python
Python解析微信dat文件的方法
Nov 30 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生成xml时添加CDATA标签的方法
2014/10/17 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
JS 统计时间
2021/03/09 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
理解javascript async的用法
2017/08/22 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
Python实现简单状态框架的方法
2015/03/19 Python
Django实现快速分页的方法实例
2017/10/22 Python
pandas带有重复索引操作方法
2018/06/08 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
python:动态路由的Flask程序代码
2019/11/22 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
简述数据库的设计过程
2015/06/22 面试题
小学教师师德反思
2014/02/03 职场文书
高中军训感言800字
2014/03/05 职场文书
MYSQL常用函数介绍
2022/05/05 MySQL
MySQL使用IF语句及用case语句对条件并结果进行判断 
2022/09/23 MySQL