python之 十进制与十二进制 相互转换~clash of coding

题目解释

十二进制是一个以 12 为基数的系统,以 0,1,2,3,4,5,6,7,8,9,A,B 为数字(十进制为 A=10 和 B=11),并以前缀 0w 写入(例如:0w1A=22)。

将十二进制数转换为十进制基数,将十进制数转换为十二进制基数。

输入
第 1 行:十二进制数 。
第 2 行:十进制数。
输出
第 1 行:第 2 行的
转换后十进制数:转换后的十二进制数nm

输入输出
0w1A23
220w1B

实现效果

import sys
import math

# Auto-generated code below aims at helping you parse
# the standard input according to the problem statement.

n = input().lstrip('0w') #Python lstrip() 方法用于截掉字符串左边的空格或指定字符。
m = int(input())
a = 0
for j,i in enumerate(n[::-1]): # [::-1]: 代表从全列表倒序取
			#enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,
			#同时列出数据和数据下标
    if i in 'AB':
        i = ord(i)-55
    a += 12**j*int(i)  #12**代表12的次方
print(a)
r=''
while m>0:
    r='0123456789AB'[m%12]+r
    m=(m-m%12)//12		#	// 取整除 - 返回商的整数部分(向下取整)
print('0w'+(r or'0'))
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值