python中通过int()、bin()、oct()、hex()和format()函数实现进制转换:int(‘1010’, 2)将二进制转十进制,bin(10)将十进制转二进制,hex(int(‘1010’, 2))实现二进制到十六进制转换,format可自定义输出格式如’X’表示大写十六进制,常用于颜色值、权限等场景。

Python中整数的进制转换非常方便,支持二进制、八进制、十进制和十六进制之间的相互转换。下面介绍常用的方法和函数。
1. 其他进制转十进制
使用int()函数可以将其他进制的字符串转换为十进制整数。需要指定对应的进制基数。
- 二进制转十进制:int(‘1010’, 2) → 10
- 八进制转十进制:int(’17’, 8) → 15
- 十六进制转十进制:int(‘A’, 16) → 10
- 任意进制(如五进制):int(’21’, 5) → 11
2. 十进制转其他进制
Python提供了内置函数将十进制整数转换为对应进制的字符串形式。
- 转二进制:bin(10) → ‘0b1010’
- 转八进制:oct(10) → ‘0o12’
- 转十六进制:hex(10) → ‘0xa’
如果想去掉前缀(如’0b’、’0x’),可以用切片或format方式:
立即学习“Python免费学习笔记(深入)”;
- bin(10)[2:] → ‘1010’
- format(10, ‘b’) → ‘1010’(二进制)
- format(10, ‘o’) → ’12’(八进制)
- format(10, ‘x’) → ‘a’(小写十六进制)
- format(10, ‘X’) → ‘A’(大写十六进制)
3. 不同进制间的直接转换
可以通过“先转十进制,再转目标进制”的方式实现任意进制转换。
例如:将二进制字符串转为十六进制
- hex(int(‘1010’, 2)) → ‘0xa’
- format(int(‘1010’, 2), ‘X’) → ‘A’
4. 实际应用小技巧
在处理颜色值、权限、位运算等场景中,进制转换很常见。
- 颜色RGB转十六进制:f'{r:02X}{g:02X}{b:02X}’
- 快速查看多个进制表示:
num = 255 print(f"Binary: {bin(num)}") # 0b11111111 print(f"Octal: {oct(num)}") # 0o377 print(f"Hex: {hex(num)}") # 0xff
基本上就这些。掌握 int()、bin()、oct()、hex() 和 format() 就能应对大多数进制转换需求。注意输入输出格式,避免前缀干扰。


