python中進(jìn)制轉(zhuǎn)換的原理是什么-創(chuàng)新互聯(lián)

這篇文章給大家介紹python 中進(jìn)制轉(zhuǎn)換的原理是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)公司成立于2013年,先為汝陽等服務(wù)建站,汝陽等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為汝陽企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

原理

十進(jìn)制轉(zhuǎn)n進(jìn)制都可以使用倒除法:對十進(jìn)制進(jìn)行除n的運算,直到商為0為止,然后將各個步驟中得到的余數(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)換成對應(yīng)的二進(jìn)制、八進(jìn)制、十六進(jìn)制;
注意只能轉(zhuǎn)換整數(shù),返回的數(shù)據(jù)是一個字符串類型

a = 12# 默認(rèn)數(shù)字都是十進(jìn)制
print(a)# 12
b = 0b0101010111#以0b開頭的是二進(jìn)制數(shù),默認(rèn)也是十進(jìn)制輸出
print(b)# 343
c = 0o33# 以0o開頭的是八進(jìn)制數(shù)
print(c)# 27
d = 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))# 0b1001001001
print(bin(0xff))# 0b11111111
print(oct(0xff))# 0o377
print(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ù),否則就會報錯
2、若 x 為 str,則可以給base傳參,不傳就默認(rèn)是10;給base傳什么參數(shù)就認(rèn)為此字符串為什么進(jìn)制的數(shù),然后把它轉(zhuǎn)換成十進(jìn)制的數(shù),但字符串里的數(shù)必須符合該進(jìn)制規(guī)范,否則會報錯

print(int(3.112))# 3
# print(int(3.112,8))# TypeError: int() can't convert non-string with explicit base
print(int('10',2))# 2
# print(int('22',2))# ValueError: invalid literal for int() with base 2: '22'
print(int('0xaaa',16))# 2730
print(int('0b111',2))# 7
print(int('0o1237',8))# 671

關(guān)于python 中進(jìn)制轉(zhuǎn)換的原理是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

網(wǎng)頁名稱:python中進(jìn)制轉(zhuǎn)換的原理是什么-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://www.muchs.cn/article34/hgdpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、Google網(wǎng)站導(dǎo)航、手機網(wǎng)站建設(shè)、靜態(tài)網(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)

成都網(wǎng)站建設(shè)