该示例将演示如何实现十进制与十六进制、二进制与十六进制、十进制和十六进制互转。
在 Python3 中,提供了几个内置函数用来实现禁止转换,如下:
bin(x):十进制 → 二进制(前缀0b)
int(x, 2):二进制 → 十进制
hex(x):十进制 → 十六进制(前缀0x)
int(x, 16):十六进制 → 十进制
可以使用 bin() 和 int() 函数实现,代码如下:
def dec_to_bin(decimal_num):
"""十进制 转 二进制"""
# bin() 返回带 0b 前缀的字符串,用 [2:] 去掉前缀
return bin(decimal_num)[2:]
def bin_to_dec(binary_str):
"""二进制 转 十进制"""
# int(字符串, 2) 表示按二进制解析
return int(binary_str, 2)
if __name__ == "__main__":
dec = 255
binary = "11111111"
print(f"十进制 {dec} → 二进制:{dec_to_bin(dec)}")
print(f"二进制 {binary} → 十进制:{bin_to_dec(binary)}\n")运行结果:
十进制 255 → 二进制:11111111
二进制 11111111 → 十进制:255可以使用 hex() 和 int() 函数实现,代码如下:
def dec_to_hex(decimal_num):
"""十进制 转 十六进制"""
# hex() 返回带 0x 前缀,[2:] 去掉前缀
return hex(decimal_num)[2:]
def hex_to_dec(hex_str):
"""十六进制 转 十进制"""
# int(字符串, 16) 表示按十六进制解析
return int(hex_str, 16)
if __name__ == "__main__":
dec = 255
hex_num = "ff"
print(f"十进制 {dec} → 十六进制:{dec_to_hex(dec)}")
print(f"十六进制 {hex_num} → 十进制:{hex_to_dec(hex_num)}\n")运行结果:
十进制 255 → 十六进制:ff
十六进制 ff → 十进制:255可以使用 int() 函数实现二进制和十六进制互转,代码如下:
def bin_to_hex(binary_str):
"""二进制 转 十六进制"""
# 先转十进制,再转十六进制
dec_num = int(binary_str, 2)
return hex(dec_num)[2:]
def hex_to_bin(hex_str):
"""十六进制 转 二进制"""
# 先转十进制,再转二进制
dec_num = int(hex_str, 16)
return bin(dec_num)[2:]
if __name__ == "__main__":
binary = "11111111"
hex_num = "ff"
print(f"二进制 {binary} → 十六进制:{bin_to_hex(binary)}")
print(f"十六进制 {hex_num} → 二进制:{hex_to_bin(hex_num)}")运行结果:
二进制 11111111 → 十六进制:ff
十六进制 ff → 二进制:11111111