python 中的进制 进制是数值的表示方式Python 原生支持二进制、八进制、十进制、十六进制并提供了丰富的进制转换功能。一、进制表示方式1. 四种进制的字面量# 十进制默认 dec 42 print(dec) # 42 # 二进制0b 或 0B 前缀 bin_num 0b101010 print(bin_num) # 42 # 八进制0o 或 0O 前缀 oct_num 0o52 print(oct_num) # 42 # 十六进制0x 或 0X 前缀 hex_num 0x2A print(hex_num) # 422. 数字分隔符Python 3.6# 使用下划线提高可读性 bin_num 0b1010_1010_1111_0000 oct_num 0o7_6_5_4 dec_num 1_000_000_000 hex_num 0xFF_00_FF_00 print(bin_num) # 43632 print(dec_num) # 1000000000二、进制转换函数1. 其他进制 → 十进制# 使用 int() 函数 print(int(101010, 2)) # 42二进制 → 十进制 print(int(52, 8)) # 42八进制 → 十进制 print(int(2A, 16)) # 42十六进制 → 十进制 print(int(FF, 16)) # 255 # 数字字符串默认按十进制处理 print(int(42)) # 42十进制2. 十进制 → 其他进制num 42 # 二进制 print(bin(num)) # 0b101010 print(format(num, b)) # 101010无前缀 print(f{num:b}) # 101010f-string # 八进制 print(oct(num)) # 0o52 print(format(num, o)) # 52 print(f{num:o}) # 52 # 十六进制 print(hex(num)) # 0x2a print(format(num, x)) # 2a小写 print(format(num, X)) # 2A大写 print(f{num:x}) # 2a三、进制格式化输出1. 使用format()函数num 255 # 二进制 print(format(num, b)) # 11111111 print(format(num, 08b)) # 11111111宽度8补零 print(format(num, #b)) # 0b11111111带前缀 # 八进制 print(format(num, o)) # 377 print(format(num, #o)) # 0o377 # 十六进制 print(format(num, x)) # ff小写 print(format(num, X)) # FF大写 print(format(num, #x)) # 0xff print(format(num, 04x)) # 00ff宽度4补零2. 使用 f-string推荐num 255 print(f{num:b}) # 11111111 print(f{num:#b}) # 0b11111111 print(f{num:08b}) # 11111111补零到8位 print(f{num:o}) # 377 print(f{num:x}) # ff print(f{num:X}) # FF print(f{num:#x}) # 0xff # 动态宽度 width 8 print(f{num:0{width}b}) # 111111113. 格式化选项对比格式二进制八进制十六进制无前缀{:b}{:o}{:x}小写前缀{:#b}{:#o}{:#x}大写{:B}{:O}{:X}大写前缀{:#B}{:#O}{:#X}补零{:08b}{:04o}{:04x}最后来一个汇总表把进制前缀转换函数格式化二进制0b/0Bbin(){:b}八进制0o/0Ooct(){:o}十进制无int(){:d}十六进制0x/0Xhex(){:x}/{:X}备注Python 原生支持四种进制字面量int()函数可将各进制字符串转为十进制bin()、oct()、hex()将十进制转为对应进制带前缀format()和 f-string 可控制进制格式可带/不带前缀位运算天然支持二进制操作数字分隔符_可提高大数字可读性