Python進制之間的轉(zhuǎn)換方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的佳木斯網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

這篇文章主要介紹Python進制之間的轉(zhuǎn)換方法,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

Python中整數(shù)的進制

Python中的整數(shù)默認(rèn)都是十進制的,其表示方法和我們?nèi)粘?吹降臎]有不同,任意給定一個正數(shù)比如a = 49,都默認(rèn)變量a代表的是十進制的整數(shù)。

Python語言一樣可以用二進制、八進制和十六進制來表示整數(shù),與十進制表示法不同,這些進制法的表示需要在整數(shù)字面值加一個前綴即可。

十進制demical——無前綴。如338。

二進制binary——0b或OB前綴,如0b1011001。

八進制octal——0o前綴,如0o557。

十六進制hexadecimal——0x前綴,如0x16f。

一、二進制、八進制、十六進制的整數(shù)轉(zhuǎn)換為十進制的整數(shù)

如何把十進制數(shù)number轉(zhuǎn)換成二進制、八進制和二進制的整數(shù)?

方法是直接使用Python內(nèi)置函數(shù)bin(number)、oct(number)和hex(number)。

簡單而粗暴。

a = 16  #a是一個十進制整數(shù)。
bin(a)
Out[39]: '0b10000'
oct(a)  #十進制轉(zhuǎn)換成八進制。
Out[40]: '0o20'
hex(a)  #十進制轉(zhuǎn)換成十六進制。
Out[41]: '0x10'

二、十進制的整數(shù)轉(zhuǎn)換為二進制、八進制、十六進制的整數(shù)

如何把二進制、八進制和十進制整數(shù)x轉(zhuǎn)換成十進制的整數(shù)?

同樣一個函數(shù)就能搞定,但是這個轉(zhuǎn)換相比上面的要略微麻煩一點點。

方法是用int()這個內(nèi)置函數(shù),可能有人看到這點就覺得沒難度了。但是,這里很容易出錯。

一般來說,int()我們用得挺多,一般把一串只有數(shù)字的字符串轉(zhuǎn)換為int整數(shù),或者浮點數(shù)向零取整。比如:

int('98999')
Out[34]: 98999
type('98999')
Out[35]: str
int('98999')
Out[36]: 98999
type(int('98999'))
Out[37]: int
int(-3.5)
Out[38]: -3
int(3.5)
Out[39]: 3

但是,如果要用int()來進行不同進制之間的轉(zhuǎn)換時,其用法就有了一點變化。

int()的完整語法是int(x, base=10),關(guān)于此函數(shù),官方的解釋是這樣的:

返回一個基于數(shù)字或字符串 x 構(gòu)造的整數(shù)對象,或者在未給出參數(shù)時返回 0。

如果 x 不是數(shù)字,或者有 base 參數(shù),x 必須是字符串、bytes、表示進制為 base 的 整數(shù)字面值 的 bytearray 實例。

換句話說,默認(rèn)base=10,即十進制;若是base要更改默認(rèn)情況,比如改成base=2,那么它表示前面的x是二進制整數(shù)時,x的類型就有了變化,不能是int整型,而必須是str字符串類型了。

所以,把二進制、八進制和十進制整數(shù)x轉(zhuǎn)換成二進制的整數(shù)有兩種情況:

第一種情況很簡單,以二進制轉(zhuǎn)換為十進制為例,把二進制的整數(shù)表示為Python語言規(guī)定的那樣,人覺得別捏但機器能識別的形式:'0b101'。這時直接使用int()函數(shù)即可。加了'0b'開頭的二進制數(shù),此時就是一個int,可以假設(shè)它是用十進制的形式來表示二進制數(shù)。

如下面所給的例子:

x = 0b101
type(x)
Out[50]: int  #此時type()作用于二進制整數(shù)x時,被識別為int類型。
int(x)
Out[51]: 5

第二種情況復(fù)雜一些,但用得可能更多一些。對于人的思維,輸入一個八進制數(shù),比如342,會直接輸入342,而不會去帶前綴'0o'。對于這樣的數(shù)字,如何轉(zhuǎn)換成二進制才是我們正常思維容易遇到的問題。

前面對int(x, base=10)有過解釋,當(dāng)base不再是默認(rèn)的10的時候,x不能再是int型數(shù)據(jù),而必須轉(zhuǎn)為str字符串類型,此函數(shù)才能起作用,否則會報錯。拿下面的例子作說明。

把一個八進制的整數(shù)754轉(zhuǎn)換成十進制的整數(shù),結(jié)果是多少?

x = 754
#把八進制整數(shù)754先轉(zhuǎn)換為字符串類型,再使用int()函數(shù)。
int(str(x), 8)  
Out[55]: 492

雖然在思維上更容易接受些,但是從實現(xiàn)層面上講,如果先把754前面加上0o直接表示為Python可識別的八進制整數(shù),再直接使用int()函數(shù)會更不容易出錯一些。個人更推薦第一種轉(zhuǎn)換方法。

小結(jié)

十進制整數(shù)number轉(zhuǎn)換為二進制、八進制、十六進制的整數(shù),直接使用Python內(nèi)置函數(shù)bin(number)、oct(number)和hex(number)即可。

二進制、八進制、十六進制整數(shù)x轉(zhuǎn)換為十進制的整數(shù),先把它們統(tǒng)一表示為Python可識別的樣式,二進制前面加前綴0b,八進制前面加前綴0o,十六進制前面加0x,再直接使用int(x)即可得到所需要的十進制整數(shù)。

以上是Python進制之間的轉(zhuǎn)換方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

分享標(biāo)題:Python進制之間的轉(zhuǎn)換方法-創(chuàng)新互聯(lián)
分享地址:http://muchs.cn/article24/cshjje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、做網(wǎng)站網(wǎng)站策劃、營銷型網(wǎng)站建設(shè)、商城網(wǎng)站、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)