您好,登錄后才能下訂單哦!
小編給大家分享一下python編程題之二進(jìn)制加減法運(yùn)算的案例分析,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
關(guān)于二進(jìn)制運(yùn)算符:
我們知道,十進(jìn)制是逢十進(jìn)一,譬如11,左邊的1在十位上,代表10,右邊的1在個(gè)位上,就是1。把1502這個(gè)數(shù)字拆開(kāi)看,就是有1個(gè)1000,5個(gè)100,0個(gè)10,2個(gè)1,
1502=1*10^3+5*10^2+0*10^1+2*10^0 ,也就是說(shuō),十進(jìn)制中的位數(shù)對(duì)應(yīng)的就是10的冪,個(gè)位是0次冪,十位是1次冪,百位是2次冪,以此類(lèi)推……
同理,二進(jìn)制中的位數(shù)對(duì)應(yīng)的就是2的冪,那么對(duì)于二進(jìn)制下的1010,轉(zhuǎn)化成十進(jìn)制下的數(shù),就是1*2^3+0*2^2+1*2^1+0*2^0=8+2=10 。
用2進(jìn)制數(shù)數(shù),首先是0,然后是1,接下去是10,而不是2,因?yàn)槎M(jìn)制中只有0和1。
小白可以練習(xí)一下從0寫(xiě)到10,寫(xiě)完對(duì)一下結(jié)果
關(guān)于二進(jìn)制加減法:
實(shí)例問(wèn)題:給定兩個(gè)二進(jìn)制字符串,返回他們的和(用二進(jìn)制表示)。輸入為非空字符串且只包含數(shù)字 1 和 0。
示例1、
輸入: a = "11", b = "1" 輸出: "100"
示例2、
輸入: a = "1010", b = "1011" 輸出: "10101"
解題代碼展示:
class Solution: def addBinary(self, a: str, b: str) -> str: max_len = max(len(a),len(b)) #使用zfill()保證a和b長(zhǎng)度相同 a = a.zfill(max_len) b = b.zfill(max_len) c = [int(a[i]) + int(b[i]) for i in range(max_len-1,-1,-1)][::-1] for i in range(len(c)-1,-1,-1): print(c[i]) if 1<int(c[i]): c[i] = c[i]-2 if i==0: c=['1']+c else: c[i-1]=int(c[i-1]) +1 h='' for i in c: h+=str(i) return h
看完了這篇文章,相信你對(duì)python編程題之二進(jìn)制加減法運(yùn)算的案例分析有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。