Python十六进制函数将十进制转换为十六进制格式
更新时间:2023-07-16Python十六进制函数
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()可以将十进制数转换为十六进制格式的字符串,我们也可以自定义一个方法来完成这个任务。我们也可以根据位数的需要,将十进制数转换为相应长度的十六进制字符串。无论使用哪种方法,都可以轻松地将十进制数据转换为十六进制格式存储和处理。