博客
关于我
python 中的进制转换 整理
阅读量:326 次
发布时间:2019-03-04

本文共 1630 字,大约阅读时间需要 5 分钟。

进制转换技术解析

Python中的进制转换函数

在Python中,内置函数bin(), oct(), hex() 提供了将整数转换为不同进制字符串的功能。这些函数返回的字符串前缀分别为0b0o0x,例如:

  • 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/

你可能感兴趣的文章
Objective-C实现FigurateNumber垛积数算法(附完整源码)
查看>>
Objective-C实现finding bridges寻找桥梁算法(附完整源码)
查看>>
Objective-C实现first come first served先到先得算法(附完整源码)
查看>>
Objective-C实现FIR滤波器(附完整源码)
查看>>
Objective-C实现fischer yates shuffle洗牌算法(附完整源码)
查看>>
Objective-C实现FisherYates Shuffle洗牌算法(附完整源码)
查看>>
Objective-C实现fisherYates洗牌算法(附完整源码)
查看>>
Objective-C实现FloodFill洪水填充函数算法(附完整源码)
查看>>
Objective-C实现floor向下取整算法(附完整源码)
查看>>
Objective-C实现floyd warshall算法(附完整源码)
查看>>
Objective-C实现Floyd-Warshall算法(附完整源码)
查看>>
Objective-C实现FPmax算法(附完整源码)
查看>>
Objective-C实现frequency finder频率探测器算法(附完整源码)
查看>>
Objective-C实现FTP上传文件(附完整源码)
查看>>
Objective-C实现FTP文件上传(附完整源码)
查看>>
Objective-C实现FTP文件下载(附完整源码)
查看>>
Objective-C实现fuzzy operations模糊运算算法(附完整源码)
查看>>
Objective-C实现Gale-Shapley盖尔-沙普利算法(附完整源码)
查看>>
Objective-C实现gamma recursive伽玛递归算法(附完整源码)
查看>>
Objective-C实现gamma 伽玛功能算法(附完整源码)
查看>>