Python实现十进制和二进制、八进制、十六进制的相互转换 您所在的位置:网站首页 python进制之间相互转换 Python实现十进制和二进制、八进制、十六进制的相互转换

Python实现十进制和二进制、八进制、十六进制的相互转换

2024-01-02 23:23| 来源: 网络整理| 查看: 265

Python实现十进制和二进制、八进制、十六进制的相互转换 1. 前言2. 实现思想2.1 十进制转换为其他进制2.2 其他进制转换为十进制 3. 参考资料

1. 前言

此文方便后期的复习,如果有问题,欢迎批评指正。

2. 实现思想 2.1 十进制转换为其他进制

原理:除以进制数(base)取余,逆序输出。 举例:将16转换为2进制形式

16除以2取余,得到余数0,存入结果(这个是最低位,将16//2 得到8不断重复1和2,直到n 0: res = n % 2 ans.append(str(res)) # 要转为字符串,便于后面join()方法 n //= 2 ans.reverse() ans = ''.join(ans) return ans def base_convert(n, base): """通用十进制转为二进制、八进制、十六进制等""" digit = '0123456789ABCEFG' ans = list() while n > 0: res = n % base ans.append(digit[res]) # 也可以构造字典进行取数 n //= base ans.reverse() # 内置方法反转,或者用切片 ans = ans[::-1] ans = ''.join(ans) return ans class Stack: """Python实现一个栈""" def __init__(self): """初始化一个列表""" self.items = [] def is_empty(self): """栈是否为空""" return self.items == [] def push(self, n): """入栈""" self.items.append(n) def pop(self): """出栈""" return self.items.pop() def peek(self): """取出最后一个数""" return self.items[len(self.ites)-1] def size(self): """栈中元素多少""" return len(self.items) def base_converter3(n, base): """利用栈,将十进制转换为其他进制""" digits = '0123456789ABCDEF' s = Stack() ans = '' while n > 0: rem = n % base s.push(rem) n //= base while not s.is_empty(): ans += digits[s.pop()] return ans if __name__ == '__main__': n, base = tuple(map(int, input().strip().split())) print(my_bin(n)) print(my_bin2(n)) n = int(input()) base = int(input()) print(base_converter3(n, base)) 2.2 其他进制转换为十进制

原理:遍历进制的每一位,同时乘以相应的进制位数,累计求和 代码实现:

def base_convert2(s, base): """二进制、八进制、十六进制转十进制。原理:每一位乘以相应base的次方,累计求和""" s = s[::-1] # 字符串反转 ans = 0 j = 0 for i in s: ans += int(i) * base ** j j += 1 return ans 3. 参考资料 Python——简单实现十进制对十六、八、二进制的转换二进制和十进制的转换

后记: 我从本硕药学零基础转行计算机,自学路上,走过很多弯路,也庆幸自己喜欢记笔记,把知识点进行总结,帮助自己成功实现转行。 2020下半年进入职场,深感自己的不足,所以2021年给自己定了个计划,每日学一技,日积月累,厚积薄发。 如果你想和我一起交流学习,欢迎大家关注我的微信公众号每日学一技,扫描下方二维码或者搜索每日学一技关注。 这个公众号主要是分享和记录自己每日的技术学习,不定期整理子类分享,主要涉及 C – > Python – > Java,计算机基础知识,机器学习,职场技能等,简单说就是一句话,成长的见证! 每日学一技



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有