python 整數(shù)越界問題詳解
python 內部自帶大整數(shù)運算能力,整數(shù)運算不會溢出,只要內存足夠,就oK
下面的例子演示了兩個32位整數(shù)加法的情況(通過位運算實現(xiàn)),為了模擬溢出的效果,必須人工的進行位運算,~運算符除了求反,還是二進制的補運算符,運算過后的二進制數(shù)字按照補碼解釋,例如 ~(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 循環(huán)內部添加多個條件判斷會出現(xiàn)越界
1.循環(huán)遍歷數(shù)組是,想添加條件修改時,只刪除第一個
# -*- 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.應該引入被刪除為一個數(shù)組
# -*- 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]
'''
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
django之對FileField字段的upload_to的設定方法
今天小編就為大家分享一篇django之對FileField字段的upload_to的設定方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python 如何用 Hypothesis 來自動化單元測試
這篇文章主要介紹了python 如何用 Hypothesis 來自動化單元測試,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03
python基于watchdog庫全自動化監(jiān)控目錄文件
這篇文章主要介紹了python基于watchdog庫全自動化監(jiān)控目錄文件,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下2021-03-03

