Skip to content

[Python] 二進制、八進制、十進制、十六進制等不同進制轉換方法

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。


轉換關係表

Untitled Diagram

References


Read More

Tags:

1 thought on “[Python] 二進制、八進制、十進制、十六進制等不同進制轉換方法”

Leave a Reply