Last Updated on 2021-08-24 by Clay
Python 是個優雅簡便的語言,經常用於 AI 與資料分析等領域。而在做科學運算的時候,少不得會碰到不同『進位方法』需要彼此轉換的時候。今天我要紀錄的,就是如何透過 Python 原生的函式來轉換不同的進位。
包含以下等不同進制:
- 二進制
- 八進制
- 十進制
- 十六進制
而且這些不同的進位方法都是可以互相轉換的。以下我就簡單地做一點簡單的示範,並且寫一個簡單的轉換表格。
不同進制互相轉換
1. 十進制轉換成其他進制
在 Python 中有著 bin()
、oct()
、hex()
等三個函式可以將十進制轉換成二進制、八進制、以及十六進制。要注意的是這些函式只能轉換 int 的資料型態。
這裡以 13 作為例子進行轉換。
# coding: utf-8 decimal = 13 print('Binary:', bin(decimal)) print('Octal:', oct(decimal)) print('Hexadecimal:', hex(decimal))
Output:
Binary: 0b1101
Octal: 0o15
Hexadecimal: 0xd
二進制的開頭會有著 0b。
八進制的開頭會有著 0o。
十六進制的開頭會有著 0x。
值得注意的是轉換結果全都是 str 的資料型態。
2. 其他進制轉換成十進制
我們可以使用 int()
函式簡單地將不同進制轉換回十進制,如以下範例。
# coding: utf-8 decimal = 13 # Convert binary = bin(decimal) octal = oct(decimal) hexadecimal = hex(decimal) # Print print('Bin => Dec:', int(binary, 2)) print('Oct => Dec:', int(octal, 8)) print('Hex => Dec:', int(hexadecimal, 16))
Output:
Bin => Dec: 13
Oct => Dec: 13
Hex => Dec: 13
重要的是 int()
除了要轉換的數值(順帶一提輸入的資料型態為 str)外,還必須要要輸入轉換進制的數值,比方說二進制就要輸入 2。
轉換關係表
References
- https://www.programiz.com/python-programming/examples/conversion-binary-octal-hexadecimal
- https://www.javatpoint.com/python-convert-decimal-binary-octal-and-hexadecimal
2
dog