欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中的進制轉(zhuǎn)換詳解

 更新時間:2023年08月07日 10:29:31   作者:Cheers711  
這篇文章主要介紹了Python中的進制轉(zhuǎn)換詳解,python內(nèi)置函數(shù)進行進制轉(zhuǎn)換的原理是將讀入的一個字符串(python默認(rèn)讀入的都是字符串形式)轉(zhuǎn)為10進制,然后再用相關(guān)函數(shù)進行其他進制轉(zhuǎn)換,需要的朋友可以參考下

Pytdon 進制轉(zhuǎn)換

Pytdon為我們提供了強大的內(nèi)置函數(shù)和格式化數(shù)字的方法去實現(xiàn)進制轉(zhuǎn)換的功能,下面一一介紹。

先將所有的函數(shù)羅列出來,如下:

2進制8進制10進制16進制
2進制-bin(int(n,8))bin(int(n,10))bin(int(n,16))
8進制oct(int(n,2))-oct(int(n,10))oct(int(n,16))
10進制int(n,2) int(n,8)-int(n,16)
16進制hex(int(n,2))hex(int(n,8))hex(int(n,10))-

下面來逐一介紹每個函數(shù)的具體使用方法:

2進制轉(zhuǎn)換成其他進制:

2進制轉(zhuǎn)換成8進制:oct(int(n,2))

輸入: 1010

輸出: 0o12

2進制轉(zhuǎn)換成10進制:int(n,2)

n=input()
print(int(n,2))

輸入:1010

輸出:10

2進制轉(zhuǎn)換成16進制:hex(int(n,2))

n=input()
print(hex(int(n,2)))

輸入:1010

輸出:0xa

8進制轉(zhuǎn)換成其他進制:

8進制轉(zhuǎn)換成2進制:bin(int(n,8))

n=input()
print(bin(int(n,8)))

輸入:1010

輸出:0b1000001000

8進制轉(zhuǎn)換成10進制:int(n,8)

n=input()
print(int(n,8))

輸入:1010

輸出:520

8進制轉(zhuǎn)換成16進制:hex(int(n,16))

n=input()
print(hex(int(n,8)))

輸入:1010

輸出:0x208

10進制轉(zhuǎn)換成其他進制:

說明:10進制轉(zhuǎn)換可以直接采取上述表格中的形式,讀入字符串,先轉(zhuǎn)換為10進制的數(shù),再用函數(shù)進行操作轉(zhuǎn)換成其他進制。

但同時可以這樣操作,讀入的時候直接進行強制類型轉(zhuǎn)換操作,轉(zhuǎn)為int類型(pytdon中的int類型的數(shù)據(jù)就是10進制)

10進制轉(zhuǎn)換成2進制:bin(n)

n=int(input())
print(bin(n))

輸入:10

輸出:0b1010

10進制轉(zhuǎn)換成8進制:oct(n)

n=int(input())
print(oct(n))

輸入:10

輸出:0o12

10進制轉(zhuǎn)換成16進制:hex(n)

n=int(input())
print(hex(n))

輸入:10

輸出:0xa

16進制轉(zhuǎn)換成其他進制:

16進制轉(zhuǎn)換成2進制:bin(int(n,16))

n=input()
print(bin(int(n,16)))

輸入:a

輸出:0b1010

16進制轉(zhuǎn)換成8進制:oct(int(n,16))

n=input()
print(oct(int(n,16)))

輸入:a

輸出:0o12

16進制轉(zhuǎn)換成10進制:int(n,16)

n=input()
print((int(n,16)))

輸入:a

輸出:10

注意:我們可以發(fā)現(xiàn),除了轉(zhuǎn)換成10進制的數(shù),其他的進制轉(zhuǎn)換結(jié)果都帶有前綴,2進制是0b,8進制是0o,16進制是0x。

但是我們在絕大部分使用進制轉(zhuǎn)換后的數(shù)據(jù)時,是不需要它的前綴的。

所以筆者這里介紹兩種方法,去掉它的前綴。

去掉前綴的方法

方法一:使用字符串切片操作

原理:就是將進制轉(zhuǎn)換后得到的結(jié)果對其進行字符串切片操作,將得到的結(jié)果從第三個字符開始取結(jié)果即可,這樣我們可以得到不帶前綴的結(jié)果

舉例:

//10進制轉(zhuǎn)換成2進制
n=int(input())
print(bin(n)[2:])//切片操作

輸入:10

輸出:1010

//10進制轉(zhuǎn)換成8進制
n=int(input())
print(oct(n)[2:])//切片操作

輸入:10

輸出:12

//10進制轉(zhuǎn)換成16進制
n=int(input())
print(hex(n)[2:])//切片操作

輸入:10

輸出:a

筆者這里以10進制轉(zhuǎn)換其他進制進行了舉例,其他的情況類比即可。

方法二:使用format函數(shù)進行格式化數(shù)字操作

說明:首先,筆者在前面說過,不同類型的進制轉(zhuǎn)換的原理時先轉(zhuǎn)換為十進制,然后再用相關(guān)的函數(shù)進行禁止轉(zhuǎn)換操作,而format函數(shù)里面有格式化數(shù)字的方法可以直接實現(xiàn)進制轉(zhuǎn)換的功能,下面一一介紹:

其他類型轉(zhuǎn)換為2進制: 操作:在format函數(shù)的槽中添加一個b 即可實現(xiàn)其他類型對2進制的轉(zhuǎn)換,下面舉例說明

n=input()
print("{:b}".format(int(n,8)))
//先將8進制的數(shù)轉(zhuǎn)換為10進制,
//然后在format的槽中添加一個b,等價于實現(xiàn)了bin函數(shù)的功能
//但是此結(jié)果是不帶有0b前綴的

輸入:1010

輸出:1000001000

其他類型轉(zhuǎn)換為8進制:

操作:在format函數(shù)的槽中添加一個o 即可實現(xiàn)其他類型對8進制的轉(zhuǎn)換,下面舉例說明

n=input()
print("{:o}".format(int(n,16)))
//先將一個16進制數(shù)轉(zhuǎn)換為10進制
//然后利用format函數(shù)格式化數(shù)字方法轉(zhuǎn)換即可

輸入:a

輸出:12

其他類型轉(zhuǎn)換為16進制: 操作:在format函數(shù)的槽中添加一個x 即可實現(xiàn)其他類型對2進制的轉(zhuǎn)換,下面舉例說明

n=input()
print("{:x}".format(int(n,8)))
//先將一個8進制的數(shù)轉(zhuǎn)換為16進制
//然后原理同上

輸入:1010

輸出:208

注意:由于轉(zhuǎn)換成10進制本來就是不帶前綴的,無需用format格式化數(shù)字方法控制

到此這篇關(guān)于Python中的進制轉(zhuǎn)換詳解的文章就介紹到這了,更多相關(guān)Python進制轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論