Python二進制轉化為十進制數(shù)學算法詳解
在python中可以通過內(nèi)置函數(shù)int()函數(shù)進行二進制轉十進制;int()函數(shù)可以將一個指定進制的數(shù)字型字符串或者十進制數(shù)字轉化為整型。
Python
Python是一種廣泛使用的解釋型、高級和通用的編程語言。Python在設計上堅持了清晰劃一的風格,這使得Python成為一門易讀、易維護,并且被大量用戶所歡迎的、用途廣泛的語言。
Python二進制
解題思路很典型,利用二進制數(shù)做加法的特性,遞歸或迭代計算不考慮進位的結果和有無進位,將加法的結果分為不考慮進位的結果和進位進位,分別用位運算處理。不考慮進位的結果用異或計算a+b(無進位) = a^b驗證:0+0=0=0^0, 1+0=0=1^0, 1+1=0=1^1是否進位用與運算表示。因為是進位,因此結果還需要向左移一位a+b(進位)= (a&b) << 1驗證:0+0=0=0&0, 1+0=0=1&0, 1+1=0=1&1綜上,兩個數(shù)的加法可以表示為 a+b = a^b + (a&b) << 1。
Python十進制
由于十進制數(shù)是一個加權數(shù),因此從十進制到二進制(從10到2)的轉換也將產(chǎn)生一個加權的二進制數(shù),其中最右邊的位是最低有效位LSB,而最左的位 是最高有效位或最高有效位,我們可以將其表示為MSB。
Python二進制轉化為十進制數(shù)學算法
網(wǎng)上大多是直接用函數(shù)轉化二進制的,下面的寫法是自己的數(shù)學算法
# binary意為二進制
binary = input("請輸入您的二進制組\n")
binary_ = list(binary)
bin_ = len(binary_)
power_ = 0
for i in range(bin_): # 計算第一個二進制
if binary_[i] == '1':
length = bin_ - 1 - i # 算背后還有幾位
power = 1
while length > 0:
length -= 1
power = power * 2
power_ = power + power_
print(power_)數(shù)學能力對于編程來說也是至關重要的,希望大家可以在閑暇之余多做一些算法題,鍛煉自己!
同時在這里也給大家分享一個好用的內(nèi)置函數(shù)map( )
在Python的手冊中是這樣介紹的:
map( function , iterable , / , *iterables )
Return an iterator that applies function to every item of iterable, yielding the results.
返回一個迭代器,該迭代器將函數(shù)應用于可迭代的每個項
*迭代器:迭代器的作用是用來訪問容器(用來保存元素的數(shù)據(jù)結構)中的元素,所以使用迭代器,我們就可以訪問容器中里面的元素。沒錯!這和訪問數(shù)組這個序列的指針一樣,因為數(shù)組范圍內(nèi)的指針就是迭代器的一種
例:map( int , string[ i ])
將string的元素一個個轉化為int類型
到此這篇關于Python二進制轉化為十進制數(shù)學算法的文章就介紹到這了,更多相關Python二進制轉化為十進制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Flask框架運用Ajax實現(xiàn)輪詢動態(tài)繪圖
Ajax是異步JavaScript和XML可用于前后端交互,本文將通過Ajax輪詢獲取后端的數(shù)據(jù),前臺使用echart繪圖庫進行圖形的生成與展示,最后實現(xiàn)動態(tài)監(jiān)控內(nèi)存利用率的這個功能,需要的可以參考一下2022-11-11
Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法
今天小編就為大家分享一篇Python 多線程搜索txt文件的內(nèi)容,并寫入搜到的內(nèi)容(Lock)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python實現(xiàn)輸出程序執(zhí)行進度百分比的方法
這篇文章主要介紹了Python實現(xiàn)輸出程序執(zhí)行進度百分比的方法,涉及Python數(shù)值運算與系統(tǒng)輸出相關操作技巧,需要的朋友可以參考下2017-09-09

