
将整数转换为二进制或十六进制字符串,Python 提供了内置函数
bin()和
hex(),可以轻松实现。
bin()返回以 "0b" 开头的二进制字符串,
hex()返回以 "0x" 开头的十六进制字符串。
解决方案
使用
bin()和
hex()函数即可。
decimal_number = 255
# 转换为二进制字符串
binary_string = bin(decimal_number)
print(f"The binary representation of {decimal_number} is: {binary_string}") # 输出: The binary representation of 255 is: 0b11111111
# 转换为十六进制字符串
hexadecimal_string = hex(decimal_number)
print(f"The hexadecimal representation of {decimal_number} is: {hexadecimal_string}") # 输出: The hexadecimal representation of 255 is: 0xff
# 去掉前缀 "0b" 或 "0x"
binary_string_no_prefix = binary_string[2:]
hexadecimal_string_no_prefix = hexadecimal_string[2:]
print(f"Binary without prefix: {binary_string_no_prefix}") # 输出: Binary without prefix: 11111111
print(f"Hexadecimal without prefix: {hexadecimal_string_no_prefix}") # 输出: Hexadecimal without prefix: ff如何自定义二进制或十六进制字符串的格式?
立即学习“Python免费学习笔记(深入)”;
如果需要更精细的控制,比如指定位数,或者使用大写字母表示十六进制,可以使用字符串的
format()方法或者 f-strings。
decimal_number = 10
# 使用 format() 方法,指定宽度为 8,填充 0
binary_string_formatted = format(decimal_number, '08b')
print(f"Formatted binary: {binary_string_formatted}") # 输出: Formatted binary: 00001010
hex_string_formatted = format(decimal_number, '02X') # 大写十六进制,宽度为 2
print(f"Formatted hexadecimal: {hex_string_formatted}") # 输出: Formatted hexadecimal: 0A
# 使用 f-string
binary_string_fstring = f'{decimal_number:08b}'
print(f"f-string binary: {binary_string_fstring}") # 输出: f-string binary: 00001010
hex_string_fstring = f'{decimal_number:02X}'
print(f"f-string hexadecimal: {hex_string_fstring}") # 输出: f-string hexadecimal: 0Aformat()方法和 f-strings 的格式说明符非常灵活,可以满足各种格式化需求。 例如,
'08b'表示二进制,宽度为 8,用 0 填充;
'02X'表示十六进制,宽度为 2,用 0 填充,并使用大写字母。
除了
bin()和
hex(),
int()函数也可以进行反向转换,将二进制或十六进制字符串转换回整数。
二进制和十六进制在哪些场景下使用?
二进制主要用于计算机底层,例如表示内存地址、指令等。由于计算机内部采用二进制表示数据,因此二进制是计算机科学的基础。
十六进制则更多用于简化二进制的表示。因为每 4 位二进制数可以用 1 位十六进制数表示,所以十六进制可以更简洁地表示较长的二进制串,例如颜色代码、MAC 地址等。 相比于直接使用一长串 0 和 1 的二进制,十六进制更容易阅读和书写,减少出错的可能性。比如 RGB 颜色
#FF0000,就代表红色。
在网络编程中,IP 地址有时也会用十六进制表示,方便进行网络配置和调试。 此外,在调试程序时,查看内存中的数据也经常使用十六进制表示,方便分析程序的运行状态。











