在 Python 中,你可以使用字符串格式化方法来控制十六进制数的输出格式与精度。以下是几种常见的方法:
format()
方法format()
方法可以非常灵活地控制输出的格式。
# 将整数转换为十六进制字符串
num = 255
# 输出不带前缀的十六进制字符串
hex_str = format(num, 'x') # 小写字母
print(hex_str) # 输出: ff
hex_str_upper = format(num, 'X') # 大写字母
print(hex_str_upper) # 输出: FF
# 输出带前缀的十六进制字符串
hex_str_with_prefix = format(num, '#x') # 小写字母带前缀
print(hex_str_with_prefix) # 输出: 0xff
hex_str_with_prefix_upper = format(num, '#X') # 大写字母带前缀
print(hex_str_with_prefix_upper) # 输出: 0XFF
# 控制输出的最小宽度和填充字符
hex_str_padded = format(num, '08x') # 8位宽度,不足部分用0填充
print(hex_str_padded) # 输出: 000000ff
f-string
(Python 3.6+)f-string
是 Python 3.6 引入的一种更简洁的字符串格式化方法。
num = 255
# 输出不带前缀的十六进制字符串
hex_str = f"{num:x}" # 小写字母
print(hex_str) # 输出: ff
hex_str_upper = f"{num:X}" # 大写字母
print(hex_str_upper) # 输出: FF
# 输出带前缀的十六进制字符串
hex_str_with_prefix = f"{num:#x}" # 小写字母带前缀
print(hex_str_with_prefix) # 输出: 0xff
hex_str_with_prefix_upper = f"{num:#X}" # 大写字母带前缀
print(hex_str_with_prefix_upper) # 输出: 0XFF
# 控制输出的最小宽度和填充字符
hex_str_padded = f"{num:08x}" # 8位宽度,不足部分用0填充
print(hex_str_padded) # 输出: 000000ff
hex()
函数hex()
函数可以将整数转换为带前缀的十六进制字符串,但无法直接控制大小写和填充。
num = 255
# 输出带前缀的十六进制字符串
hex_str = hex(num)
print(hex_str) # 输出: 0xff
%
格式化操作符%
格式化操作符是 Python 中较旧的格式化方法,但仍然可以使用。
num = 255
# 输出不带前缀的十六进制字符串
hex_str = "%x" % num # 小写字母
print(hex_str) # 输出: ff
hex_str_upper = "%X" % num # 大写字母
print(hex_str_upper) # 输出: FF
# 输出带前缀的十六进制字符串
hex_str_with_prefix = "%#x" % num # 小写字母带前缀
print(hex_str_with_prefix) # 输出: 0xff
hex_str_with_prefix_upper = "%#X" % num # 大写字母带前缀
print(hex_str_with_prefix_upper) # 输出: 0XFF
# 控制输出的最小宽度和填充字符
hex_str_padded = "%08x" % num # 8位宽度,不足部分用0填充
print(hex_str_padded) # 输出: 000000ff
format()
或 f-string
可以灵活控制十六进制数的输出格式、大小写、前缀和填充。hex()
函数简单直接,但功能有限。%
格式化操作符是旧式方法,功能与 format()
类似。根据你的需求选择合适的方法即可。