进制转换-Python实现

二进制,八进制,十进制,十六进制 不会有人这都不懂吧? 不会吧 不会吧 不会吧?

复制一下,转换原理,懂了原理,一通百通

a进制转b进制,分两步走

先是a进制转为十进制

按位权展开 相加:

从左往右 为 n-0位
二进制的位权: 第 n 位的 位权: 2n
八进制的位权: 第 n 位的 位权: 8n
十进制的位权: 第 n 位的 位权: 10n
十六进制的位权:第 n 位的 位权: 16n

例如:二进制 1010 转为十进制
num = 1x23 + 0x22 + 1x21 + 0*20 = 10

然后十进制转为b进制

核心思想:除基取余法

在这里插入图片描述
例如:十进制转十六进制:

十进制108

  1. 108/16 = 6 ··· 12
  2. 12<16 结束
    0x6C

直接上代码:

def a_to_b(a, b, num):
    '''
    :param a:  表示a进制 int
    :param b:  表示b进制 int
    :param num: 表示不带前缀的a进制原数据 str

    :return:    不带后缀的b进制的数据 str
    '''

    def a_to_ten(a, num):

        len1 = len(num)
        ans = 0
        for i in range(len1):
            if num[i] >= '0' and num[i] <= '9':
                ans = ans + ((ord(num[i]) - ord
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值