小編給大家分享一下python中進(jìn)制轉(zhuǎn)換int、bin、oct、hex的示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)建站專注于和布克賽爾蒙古網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供和布克賽爾蒙古營銷型網(wǎng)站建設(shè),和布克賽爾蒙古網(wǎng)站制作、和布克賽爾蒙古網(wǎng)頁設(shè)計(jì)、和布克賽爾蒙古網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造和布克賽爾蒙古網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供和布克賽爾蒙古網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
原理
十進(jìn)制轉(zhuǎn)n進(jìn)制都可以使用倒除法:對(duì)十進(jìn)制進(jìn)行除n的運(yùn)算,直到商為0為止,然后將各個(gè)步驟中得到的余數(shù)倒著寫出來.
n進(jìn)制轉(zhuǎn)十進(jìn)制:(例子:二進(jìn)制轉(zhuǎn)十進(jìn)制)
101001 => 2^5 + 2^3 + 1 = 32 + 8 + 1 = 41
10111 => 2^4 + 2^2 + 2 + 1 = 16 + 4 + 2 +1 = 23
同樣類推一下,n進(jìn)制轉(zhuǎn)十進(jìn)制就是將2為底換成n為底就好了
還有其他方法,比如使用中間二進(jìn)制,
例如,將十進(jìn)制轉(zhuǎn)成八進(jìn)制或者十六進(jìn)制,先轉(zhuǎn)成二進(jìn)制再轉(zhuǎn)成八進(jìn)制或者十六進(jìn)制
十進(jìn)制 => 二進(jìn)制 => 十六進(jìn)制
520 => 1000001000 (512+8) => 10 0000 1000 => 208(十六進(jìn)制)
1314 => 10100100010(二進(jìn)制) => 2442(八進(jìn)制) => 522(十六進(jìn)制)
八進(jìn)制或者十六進(jìn)制轉(zhuǎn)成十進(jìn)制
十六進(jìn)制 => 二進(jìn)制 => 十進(jìn)制
522 => 0101 0010 0010 => 1024 + 256 + 32 + 2 = 1280+34 = 1314(十進(jìn)制)
十進(jìn)制轉(zhuǎn)其他進(jìn)制的數(shù)
使用內(nèi)置函數(shù)bin、oct、hex可以將整數(shù)轉(zhuǎn)換成對(duì)應(yīng)的二進(jìn)制、八進(jìn)制、十六進(jìn)制;
注意只能轉(zhuǎn)換整數(shù),返回的數(shù)據(jù)是一個(gè)字符串類型
a = 12# 默認(rèn)數(shù)字都是十進(jìn)制print(a)# 12b = 0b0101010111#以0b開頭的是二進(jìn)制數(shù),默認(rèn)也是十進(jìn)制輸出print(b)# 343c = 0o33# 以0o開頭的是八進(jìn)制數(shù)print(c)# 27d = 0x24# 以0x開頭的是十六進(jìn)制數(shù)print(d)# 36
a = 12 # 12是十進(jìn)制數(shù)print(bin(a))# 0b1100 使用bin內(nèi)置函數(shù)可以將數(shù)字轉(zhuǎn)換為二進(jìn)制print(oct(a))# 0o14 使用oct內(nèi)置函數(shù)可以將數(shù)字轉(zhuǎn)換為八進(jìn)制print(hex(a))# 0xc 使用hex內(nèi)置函數(shù)可以將數(shù)字轉(zhuǎn)換為十六進(jìn)制print(type(bin(a)))# <class 'str'>print(bin(0o1111))# 0b1001001001print(bin(0xff))# 0b11111111print(oct(0xff))# 0o377print(hex(0b00011111)) # 0x1f# print(bin(1.12))# print(oct(1.12))# print(hex(1.12))# TypeError: 'float' object cannot be interpreted as an integer
其他進(jìn)制轉(zhuǎn)換成十進(jìn)制
int函數(shù)的使用
int(x, base=10)base是進(jìn)制,默認(rèn)是十進(jìn)制
int函數(shù)常用來將其他類型的數(shù)據(jù)轉(zhuǎn)換成整型
注意:
x 有兩種:str / int
1、若 x 為純數(shù)字,就不能給base傳參數(shù),否則就會(huì)報(bào)錯(cuò)
2、若 x 為 str,則可以給base傳參,不傳就默認(rèn)是10;給base傳什么參數(shù)就認(rèn)為此字符串為什么進(jìn)制的數(shù),然后把它轉(zhuǎn)換成十進(jìn)制的數(shù),但字符串里的數(shù)必須符合該進(jìn)制規(guī)范,否則會(huì)報(bào)錯(cuò)
print(int(3.112))# 3# print(int(3.112,8))# TypeError: int() can't convert non-string with explicit baseprint(int('10',2))# 2# print(int('22',2))# ValueError: invalid literal for int() with base 2: '22'print(int('0xaaa',16))# 2730print(int('0b111',2))# 7print(int('0o1237',8))# 671
以上是“python中進(jìn)制轉(zhuǎn)換int、bin、oct、hex的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享題目:python中進(jìn)制轉(zhuǎn)換int、bin、oct、hex的示例
文章出自:http://www.rwnh.cn/article20/igisco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、靜態(tài)網(wǎng)站、App開發(fā)、定制開發(fā)、外貿(mào)建站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)