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

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

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

Pytdon 進(jìn)制轉(zhuǎn)換

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

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

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

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

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

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

輸入: 1010

輸出: 0o12

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

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

輸入:1010

輸出:10

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

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

輸入:1010

輸出:0xa

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

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

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

輸入:1010

輸出:0b1000001000

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

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

輸入:1010

輸出:520

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

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

輸入:1010

輸出:0x208

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

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

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

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

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

輸入:10

輸出:0b1010

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

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

輸入:10

輸出:0o12

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

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

輸入:10

輸出:0xa

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

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

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

輸入:a

輸出:0b1010

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

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

輸入:a

輸出:0o12

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

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

輸入:a

輸出:10

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

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

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

去掉前綴的方法

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

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

舉例:

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

輸入:10

輸出:1010

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

輸入:10

輸出:12

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

輸入:10

輸出:a

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

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

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

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

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

輸入:1010

輸出:1000001000

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

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

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

輸入:a

輸出:12

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

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

輸入:1010

輸出:208

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

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

相關(guān)文章

最新評論