這篇文章主要為大家展示了“python中整數(shù)越界問題的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“python中整數(shù)越界問題的示例分析”這篇文章吧。
python 內(nèi)部自帶大整數(shù)運(yùn)算能力,整數(shù)運(yùn)算不會溢出,只要內(nèi)存足夠,就oK
下面的例子演示了兩個32位整數(shù)加法的情況(通過位運(yùn)算實(shí)現(xiàn)),為了模擬溢出的效果,必須人工的進(jìn)行位運(yùn)算,~運(yùn)算符除了求反,還是二進(jìn)制的補(bǔ)運(yùn)算符,運(yùn)算過后的二進(jìn)制數(shù)字按照補(bǔ)碼解釋,例如 ~(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))
補(bǔ)充:python 循環(huán)內(nèi)部添加多個條件判斷會出現(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.應(yīng)該引入被刪除為一個數(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] '''
以上是“python中整數(shù)越界問題的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享標(biāo)題:python中整數(shù)越界問題的示例分析-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://www.chinadenli.net/article46/dideeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、全網(wǎng)營銷推廣、企業(yè)建站、虛擬主機(jī)、微信小程序、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容