Python中的進制轉(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)換結果都帶有前綴,2進制是0b,8進制是0o,16進制是0x。
但是我們在絕大部分使用進制轉(zhuǎn)換后的數(shù)據(jù)時,是不需要它的前綴的。
所以筆者這里介紹兩種方法,去掉它的前綴。
去掉前綴的方法
方法一:使用字符串切片操作
原理:就是將進制轉(zhuǎn)換后得到的結果對其進行字符串切片操作,將得到的結果從第三個字符開始取結果即可,這樣我們可以得到不帶前綴的結果
舉例:
//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)換為十進制,然后再用相關的函數(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ù)的功能
//但是此結果是不帶有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ù)字方法控制
到此這篇關于Python中的進制轉(zhuǎn)換詳解的文章就介紹到這了,更多相關Python進制轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解python讀取matlab數(shù)據(jù)(.mat文件)
本文主要介紹了python讀取matlab數(shù)據(jù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
Django壓縮靜態(tài)文件的實現(xiàn)方法詳析
最近在學習Django配置靜態(tài)文件,下面這篇文章主要給大家介紹了關于Django壓縮靜態(tài)文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧2018-08-08
使用Selenium在Python中實現(xiàn)錄屏功能
Selenium 是一個強大的用于自動化測試的工具,但你知道它也可以用來錄制瀏覽器操作的視頻嗎?本文將介紹如何使用 Selenium 在 Python 中實現(xiàn)錄屏功能,以便記錄和分享你的網(wǎng)頁操作過程,需要的朋友可以參考下2023-11-11
基于Python實現(xiàn)一個自動關機程序并打包成exe文件
這篇文章主要介紹了通過Python創(chuàng)建一個可以自動關機的小程序,并打包成exe文件。文中的示例代碼講解詳細,對我們學習Python有一定的幫助,感興趣的同學可以了解一下2021-12-12

