c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python十六进制函数将十进制转换为十六进制格式

更新时间:2023-07-16

Python十六进制函数

Python有内置函数hex()可以将一个十进制数转换为十六进制格式。hex()返回小写表示的十六进制字符串。

num = 255
hex_num = hex(num)
print(hex_num)  # 0xff

hex()函数同样可以处理负数的情况。

num = -255
hex_num = hex(num)
print(hex_num)  # -0xff

在将hex字符串转换回十进制时,使用int函数。

hex_num = "0xff"
num = int(hex_num, 16)
print(num)  # 255

自定义方法

如果我们需要将一个十进制数转换为十六进制格式,也可以自定义一个方法。

def dec2hex(dec_num):
    hex_chars = "0123456789abcdef"
    if dec_num < 0:
        dec_num += 4294967296 # 处理负数情况
    hex_list = []
    while dec_num > 0:
        remainder = dec_num % 16
        dec_num //= 16
        hex_list.append(hex_chars[remainder])
    hex_list.reverse()
    return "".join(hex_list)

print(dec2hex(255)) # "ff"

这个方法可以将大于等于0的整数转换为小写的十六进制格式。

根据位数格式化

我们也可以根据需要的位数,将一个十进制数转化为相应的十六进制格式。

def dec2hex(dec_num, digits=2):
    hex_chars = "0123456789abcdef"
    hex_list = []
    while dec_num > 0:
        remainder = dec_num % 16
        dec_num //= 16
        hex_list.append(hex_chars[remainder])
    hex_list.reverse()
    padding = digits - len(hex_list)
    if padding > 0:
        hex_list = ["0"] * padding + hex_list
    return "".join(hex_list)

print(dec2hex(255)) # "ff"
print(dec2hex(255, 4)) # "00ff"

这个方法可以将大于等于0的整数转换为指定位数的小写的十六进制字符串。

总结

Python内置函数hex()可以将十进制数转换为十六进制格式的字符串,我们也可以自定义一个方法来完成这个任务。我们也可以根据位数的需要,将十进制数转换为相应长度的十六进制字符串。无论使用哪种方法,都可以轻松地将十进制数据转换为十六进制格式存储和处理。