十进制转换为其他进制

需求

需求:十进制转二进制,十进制除以2,直达商为0,余数反转,次序反转可以用栈实现
输入:一个十进制的数字
输出:转换后的数据

十进制转二进制

def shi_transform_er(consult):
    # 十进制转换为二进制
    s = []
    while consult > 0:
        remainder = consult % 2  # 余数
        s.append(remainder)  # 把余数添加到栈里面
        consult = consult // 2
    ret = ''.join([str(s.pop()) for i in range(len(s))])
    return ret


print(shi_transform_er(21))

十进制转换为任意进制

def shi_transform_every(consult, base):
    """
    通用:十进制转换为任意进制
    :param consult: 十进制数据
    :param base: 要转换成的进制
    :return: 转换后结果
    """
    t_dict = {
        "10": "A",
        "11": "B",
        "12": "C",
        "13": "D",
        "14": "E",
        "15": "F"
    }
    s = []
    while consult > 0:
        remainder = consult % base  # 余数
        if remainder > 9:
            remainder = t_dict[str(remainder)]
        s.append(remainder)  # 把余数添加到栈里面
        consult = consult // base
    ret = ''.join([str(s.pop()) for i in range(len(s))])
    return ret


print(shi_transform_every(100, 2))
print(shi_transform_every(100, 8))
print(shi_transform_every(100, 16))
print(shi_transform_every(31, 16))

# 测试结果
1100100
144
64
1F
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值