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过滤列表用法实例分析
Apr 29 Python
机器学习python实战之手写数字识别
Nov 01 Python
python下载微信公众号相关文章
Feb 26 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
Python实现名片管理系统
Feb 14 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
Mar 30 Python
Django values()和value_list()的使用
Mar 31 Python
基于python调用jenkins-cli实现快速发布
Aug 14 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
python 利用opencv实现图像网络传输
Nov 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
图书管理程序(三)
2006/10/09 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
Yii框架中jquery表单验证插件用法示例
2016/10/18 PHP
Google Map API更新实现用户自定义标注坐标
2009/07/29 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
2015/09/11 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
ES6概念 Symbol toString()方法
2016/12/25 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
Node.js实现简单的爬取的示例代码
2019/06/25 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
5款实用的python 工具推荐
2020/10/13 Python
python批量提取图片信息并保存的实现
2021/02/05 Python
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
职业培训师职业生涯规划
2014/02/18 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
车间质检员岗位职责
2015/04/08 职场文书
如何写辞职信
2015/05/13 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
python 制作一个gui界面的翻译工具
2021/05/14 Python
mysql如何能有效防止删库跑路
2021/10/05 MySQL
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
Python学习之迭代器详解
2022/04/01 Python