Python二進(jìn)制轉(zhuǎn)化為十進(jìn)制數(shù)學(xué)算法詳解
在python中可以通過(guò)內(nèi)置函數(shù)int()函數(shù)進(jìn)行二進(jìn)制轉(zhuǎn)十進(jìn)制;int()函數(shù)可以將一個(gè)指定進(jìn)制的數(shù)字型字符串或者十進(jìn)制數(shù)字轉(zhuǎn)化為整型。
Python
Python是一種廣泛使用的解釋型、高級(jí)和通用的編程語(yǔ)言。Python在設(shè)計(jì)上堅(jiān)持了清晰劃一的風(fēng)格,這使得Python成為一門易讀、易維護(hù),并且被大量用戶所歡迎的、用途廣泛的語(yǔ)言。
Python二進(jìn)制
解題思路很典型,利用二進(jìn)制數(shù)做加法的特性,遞歸或迭代計(jì)算不考慮進(jìn)位的結(jié)果和有無(wú)進(jìn)位,將加法的結(jié)果分為不考慮進(jìn)位的結(jié)果和進(jìn)位進(jìn)位,分別用位運(yùn)算處理。不考慮進(jìn)位的結(jié)果用異或計(jì)算a+b(無(wú)進(jìn)位) = a^b驗(yàn)證:0+0=0=0^0, 1+0=0=1^0, 1+1=0=1^1是否進(jìn)位用與運(yùn)算表示。因?yàn)槭沁M(jìn)位,因此結(jié)果還需要向左移一位a+b(進(jìn)位)= (a&b) << 1驗(yàn)證:0+0=0=0&0, 1+0=0=1&0, 1+1=0=1&1綜上,兩個(gè)數(shù)的加法可以表示為 a+b = a^b + (a&b) << 1。
Python十進(jìn)制
由于十進(jìn)制數(shù)是一個(gè)加權(quán)數(shù),因此從十進(jìn)制到二進(jìn)制(從10到2)的轉(zhuǎn)換也將產(chǎn)生一個(gè)加權(quán)的二進(jìn)制數(shù),其中最右邊的位是最低有效位LSB,而最左的位 是最高有效位或最高有效位,我們可以將其表示為MSB。
Python二進(jìn)制轉(zhuǎn)化為十進(jìn)制數(shù)學(xué)算法
網(wǎng)上大多是直接用函數(shù)轉(zhuǎn)化二進(jìn)制的,下面的寫法是自己的數(shù)學(xué)算法
# binary意為二進(jìn)制 binary = input("請(qǐng)輸入您的二進(jìn)制組\n") binary_ = list(binary) bin_ = len(binary_) power_ = 0 for i in range(bin_): # 計(jì)算第一個(gè)二進(jìn)制 if binary_[i] == '1': length = bin_ - 1 - i # 算背后還有幾位 power = 1 while length > 0: length -= 1 power = power * 2 power_ = power + power_ print(power_)
數(shù)學(xué)能力對(duì)于編程來(lái)說(shuō)也是至關(guān)重要的,希望大家可以在閑暇之余多做一些算法題,鍛煉自己!
同時(shí)在這里也給大家分享一個(gè)好用的內(nèi)置函數(shù)map( )
在Python的手冊(cè)中是這樣介紹的:
map( function , iterable , / , *iterables )
Return an iterator that applies function to every item of iterable, yielding the results.
返回一個(gè)迭代器,該迭代器將函數(shù)應(yīng)用于可迭代的每個(gè)項(xiàng)
*迭代器:迭代器的作用是用來(lái)訪問(wèn)容器(用來(lái)保存元素的數(shù)據(jù)結(jié)構(gòu))中的元素,所以使用迭代器,我們就可以訪問(wèn)容器中里面的元素。沒(méi)錯(cuò)!這和訪問(wèn)數(shù)組這個(gè)序列的指針一樣,因?yàn)閿?shù)組范圍內(nèi)的指針就是迭代器的一種
例:map( int , string[ i ])
將string的元素一個(gè)個(gè)轉(zhuǎn)化為int類型
到此這篇關(guān)于Python二進(jìn)制轉(zhuǎn)化為十進(jìn)制數(shù)學(xué)算法的文章就介紹到這了,更多相關(guān)Python二進(jìn)制轉(zhuǎn)化為十進(jìn)制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決安裝pycharm后不能執(zhí)行python腳本的問(wèn)題
今天小編就為大家分享一篇解決安裝pycharm后不能執(zhí)行python腳本的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01解決Django提交表單報(bào)錯(cuò):CSRF token missing or incorrect的問(wèn)題
這篇文章主要介紹了解決Django提交表單報(bào)錯(cuò):CSRF token missing or incorrect的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Pytorch模型遷移和遷移學(xué)習(xí),導(dǎo)入部分模型參數(shù)的操作
這篇文章主要介紹了Pytorch模型遷移和遷移學(xué)習(xí),導(dǎo)入部分模型參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python如何使用EasyOCR工具識(shí)別圖像文本
EasyOCR?是?PyTorch?實(shí)現(xiàn)的一個(gè)光學(xué)字符識(shí)別?(OCR)?工具,這篇文章主要介紹了Python如何使用EasyOCR工具識(shí)別圖像文本,需要的朋友可以參考下2023-04-04Python利用代碼計(jì)算2個(gè)坐標(biāo)之間的距離
這篇文章主要介紹了Python利用代碼計(jì)算2個(gè)坐標(biāo)之間的距離,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python中用memcached來(lái)減少數(shù)據(jù)庫(kù)查詢次數(shù)的教程
這篇文章主要介紹了Python中用memcached來(lái)減少數(shù)據(jù)庫(kù)查詢次數(shù)的教程,memcached是一種分布式的內(nèi)存緩存工具,使用后可以減少對(duì)硬盤的I/O次數(shù),需要的朋友可以參考下2015-04-04詳談python read readline readlines的區(qū)別
下面小編就為大家?guī)?lái)一篇詳談python read readline readlines的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09