本文共 1630 字,大约阅读时间需要 5 分钟。
在Python中,内置函数bin(), oct(), hex() 提供了将整数转换为不同进制字符串的功能。这些函数返回的字符串前缀分别为0b、0o、0x,例如:
bin(15) 返回 '0b1111'oct(16) 返回 '0o20'hex(256) 返回 '0x100'二进制转换函数bin(x)接收一个整数参数并返回其二进制表示的字符串。例如:
>>> bin(15)'0b1111'
八进制转换函数oct(x)同样接收整数参数并返回八进制字符串。例如:
>>> oct(16)'0o20'
int()函数既可以将字符串转换为整数,也可以处理不同进制的字符串转换。例如:
>>> int('0b100', 0) # 返回4 十六进制转换函数hex(x)返回十六进制字符串,例如:
>>> hex(256)'0x100'
在实际应用中,可能需要自定义进制转换函数。以下是实现不同进制转换的示例代码:
def bin2dec(str_num): return str(int(str_num, 2))print(bin2dec("11")) # 输出3 def oct2dec(str_num): return str(int(str_num, 8))print(oct2dec('11')) # 输出9 def hex2dec(str_num): return str(int(str_num, 16))print(hex2dec('11')) # 输出17 def dec2bin(num: int): if num == 0: return '0' bit_list = [] while num > 0: num, res = divmod(num, 2) bit_list.append(baseNumDict[res]) return ''.join([str(i) for i in bit_list[::-1]])print(dec2bin(15)) # 输出1111
def dec2oct(num: int): if num == 0: return '0' bit_list = [] while num > 0: num, res = divmod(num, 8) bit_list.append(baseNumDict[res]) return ''.join([str(i) for i in bit_list[::-1]])print(dec2oct(16)) # 输出20
def dec2hex(num: int): if num == 0: return '0' bit_list = [] while num > 0: num, res = divmod(num, 16) bit_list.append(baseNumDict[res]) return ''.join([str(i) for i in bit_list[::-1]])print(dec2hex(16)) # 输出10
在实际应用中,当直接转换无法完成时,可以通过中间进制转换。例如,某些情况下可以通过先转换为二进制,再转换为其他进制。这种方法可以简化转换逻辑。
总结来说,掌握这些进制转换方法是开发工作中不可或缺的一部分。通过合理使用内置函数和自定义函数,可以高效完成各种进制转换任务。
转载地址:http://wadh.baihongyu.com/