在計算機進行資料交換時,常常會有乙個進製轉換的過程,我們知道計算機只認0 和 1.在記憶體系統中,基本基於二進位制進行運算的,但是有時候資料過於龐大,為了方便儲存管理,計算機會使用十六進製制儲存資料,但是怎麼實現資料轉換呢?
我們人類由十根手指頭,所以自然就使用十進位制啦,每當我們數數字到10之後,於是就重0 開始繼續數,所以逢十進一就這麼來了。對於其它進製呢,也是同樣的,比如最常見的二進位制,也就是逢二進一,依次類推。
1 各種進製介紹
python中的整數支援十進位制、二進位制、八進位制和十六進製制四種不同的表示方式,在轉換之前,我們先了解以下各種進製
1.1.1 十進位制
1.1.2 二進位制
1.1.3 八進位制
1.1.4 十六進製制
2 進製之間的轉換
python提供了三個函式用於進製的轉換,分別是bin()、oct()、hex()用於二進位制、八進位制和十六進製制的轉換,其用法如下:
轉十進位制
# 1. 其他進製轉十進位制: 使用print函式列印其他進製的數,列印結果就是十進位制
print
(0b11011
)# 檢視二進位制數11011對應的十進位制
print
(0o56
)# 檢視八進位制數56對應的十進位制
print
(0x1fa
)# 檢視十六進製制數1fa的十進位制
結果:
27
46506
轉二進位制
# 2. 其他進製轉二進位制: 獲取函式bin()的結果
print
(bin
(100))
# 檢視十進位制數100對應的二進位制
print
(bin
(0o56))
# 檢視八進位制數56對應的二進位制
print
(bin
(0x1fa))
# 檢視十六進製制數1fa對應的二進位制
結果:
0b1100100
0b101110
0b111111010
轉八進位制
print
(oct
(100))
# 檢視十進位制數100對應的八進位制
print
(oct
(0b11011))
# 檢視二進位制數11011對應的八進位制
print
(oct
(0x1fa))
# 檢視十六進製制數1fa對應的八進位制
結果:
0o144
0o33
0o772
轉十六進製制
print
(hex
(100))
# 檢視十進位制數100對應的十六進製制
print
(hex
(0b11011))
# 檢視二進位制數11011對應的十六進製制
print
(hex
(0o56))
# 檢視八進位制數56對應的十六進製制
結果:
0x64
0x1b
0x2e
不同的進製只是數字的不同的表示方式,使用的時候並無區別,在程式中,十進位制數能做的,其他進製都可以,示例如下:
print(10
+20)print
(0b1010
+0b10100
)print
(0o12
+0o24
)print
(0xa
+0x14
)
結果:
30
3030
30
Python基礎語法系列7 if分支結構
預設情況下,程式的執行流程是這樣的 執行程式後,系統會按書寫順序從上至下執行程式中的每一行 但是這樣並不能滿足我們所有的開發需求。實際開發中,我們需要根據不同的條件執行不同的 或者重複執行某一段 為了方便我們控制程式的執行流程,python提供3種流程結構,不同的流程結構可以實現不同的執行流程。分別...
Python基礎語法(4)
計算機利用資料有三種方式 直接使用 計算和加工 做判斷對於程式設計新手來講,掌握主要的資料型別是重中之重。學習了兩種新的資料型別 列表和字典,你會發現,它們比之前學過的 整數 浮點數 字串 更加高階,更具有 包容性 前面學的幾種型別,每次賦值只能儲存一條資料。如果需要使用很多資料的時候,就會很不方便...
基礎演算法系列 前言
怎樣才能學好程式?個人認為,乙個好的程式設計師必須具備兩方便的素質 一是知識,二是邏輯思維。知識需要不斷積累,可能知識就是乙個小小的問題,你知道了,就能方便的運用上,不知道的話,便可能花費時間查閱資料。相對於知識,邏輯更顯重要。知識可以積累,而邏輯主要看程式設計師的分析問題 解決問題的能力,這種能力...