字面量表示法
| 進制 | 前綴 | 示例 | 十進制值 |
| 二進制 | 0b / 0B | 0b11 | 3 |
| 八進制 | 0o / 0O (Py3) / 0 (Py2) | 0o11 | 9 |
| 十六進制 | 0x / 0X | 0x11 | 17 |
內置轉換函數
# 十進制 → 其他
bin(10) # '0b1010'
oct(8) # '0o10'
hex(10) # '0xa'
# 其他 → 十進制
int('1001', 2) # 9
int('0xab', 16) # 171
int('12', 8) # 10
# 格式化輸出(不帶前綴)
format(10, 'b') # '1010'
format(10, 'o') # '12'
format(10, 'x') # 'a'
f'{10:b}' # '1010' (f-string)
# 任意進制間轉換通用函數
def convert(num_str, from_base, to_base):
return format(int(num_str, from_base), 'x' if to_base==16 else 'o' if to_base==8 else 'b')
互轉速查表
| 來源 → 目標 | 代碼示例 | 結果 |
| 10 → 2 | bin(10) | '0b1010' |
| 2 → 10 | int('1001', 2) | 9 |
| 10 → 16 | hex(10) | '0xa' |
| 16 → 10 | int('ff', 16) | 255 |
| 16 → 2 | bin(0xa) | '0b1010' |
| 2 → 16 | hex(0b1001) | '0x9' |
| 10 → 8 | oct(8) | '0o10' |
| 8 → 10 | int('12', 8) | 10 |
注意事項
- Python 3 八進制字面量必須用
0o,0 開頭語法已移除;
int() 第二參數支援 2–36 進制;
- 格式化輸出用
format() 或 f-string 更靈活,不帶前綴。