插件窝 干货文章 Python 中如何控制十六进制数的输出格式与精度

Python 中如何控制十六进制数的输出格式与精度

输出 前缀 hex 十六进制 63    来源:    2025-03-14

在 Python 中,你可以使用字符串格式化方法来控制十六进制数的输出格式与精度。以下是几种常见的方法:

1. 使用 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

2. 使用 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

3. 使用 hex() 函数

hex() 函数可以将整数转换为带前缀的十六进制字符串,但无法直接控制大小写和填充。

num = 255

# 输出带前缀的十六进制字符串
hex_str = hex(num)
print(hex_str)  # 输出: 0xff

4. 使用 % 格式化操作符

% 格式化操作符是 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() 类似。

根据你的需求选择合适的方法即可。