(最开始源于牛客网上的一道编程题 : [编程题] 数制转换

将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
# 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
def XToInt(strNum,X):
sum = 0
strNum = strNum.lstrip("") #去掉开始的0(前导零)
length = len(strNum)
for i in range(length):
sum += ABCToNum(strNum[i])*(X**(length-i-1))
return sum
将int十进制转为Y进制的功能函数:(除Y取余法)
# 将int十进制转为Y进制的功能函数:(除Y取余法)
def intToY(num,Y):
res = ""
while (num!=0):
# temp=
# temp=
res = str(NumToABC(num%Y))+res
num = num//Y #取商
# res = int(res)
res.upper()
return res

其中的辅助函数为:

#  辅助功能函数
def ABCToNum(char):
if char in "":
return int(char)
if char in "Aa" :
return 10
if char in "Bb":
return 11
if char in "Cc" :
return 12
if char in "Dd":
return 13
if char in "Ee" :
return 14
if char in "Ff":
return 15
# 辅助功能函数
def NumToABC(intN):
if intN in [0,1,2,3,4,5,6,7,8,9]:
return intN
if intN ==10 :
return 'A'
if intN ==11 :
return 'B'
if intN ==12 :
return 'C'
if intN ==13 :
return 'D'
if intN ==14 :
return 'E'
if intN ==15 :
return 'F'

该题的完整实现代码:

#  辅助功能函数
def ABCToNum(char):
if char in "":
return int(char)
if char in "Aa" :
return 10
if char in "Bb":
return 11
if char in "Cc" :
return 12
if char in "Dd":
return 13
if char in "Ee" :
return 14
if char in "Ff":
return 15
# 辅助功能函数
def NumToABC(intN):
if intN in [0,1,2,3,4,5,6,7,8,9]:
return intN
if intN ==10 :
return 'A'
if intN ==11 :
return 'B'
if intN ==12 :
return 'C'
if intN ==13 :
return 'D'
if intN ==14 :
return 'E'
if intN ==15 :
return 'F' # 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
def XToInt(strNum,X):
sum = 0
strNum = strNum.lstrip("") #去掉开始的0(前导零)
length = len(strNum)
for i in range(length):
sum += ABCToNum(strNum[i])*(X**(length-i-1))
return sum
# 将int十进制转为Y进制的功能函数:(除Y取余法)
def intToY(num,Y):
res = ""
while (num!=0):
# temp=
# temp=
res = str(NumToABC(num%Y))+res
num = num//Y #取商
# res = int(res)
res.upper()
return res def NumberSystemConversion():
X,strInput,Y = input().split()
intA = XToInt(strInput,int(X))
outB = intToY(intA,int(Y))
print(outB)
NumberSystemConversion()

结果可以为:

Python实现:十进制数与(2~16进制数)之间的互相转换的更多相关文章

  1. Java中8进制数和16进制数的表示方法

    由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题.  但,二进制数太长了.比如int   类型占用4个字节,32位.比如100,用int类型的二进制数表达将 ...

  2. 实战项目开发细节:C语言分离一个16进制数取出相应的位1或0

    最近在公司开发一个关于钢琴的PCBA项目,项目大概是这样的,完成各种功能的测试,准备去工厂量产的时候可以通过软件快速甄别硬件是否短路,断路等问题. 其中,甄别好坏的方法是通过比如按键,或者其它的操作然 ...

  3. php 将16进制数串转换为二进制数据的函数

    /**     * 将16进制数串转换为二进制数据的函数     * @param $hexdata     * @return string bindata     */     function ...

  4. 汇编:1位16进制数到ASCII码转换

    ;============================ ;1位16进制数到ASCII码转换 ; { X+30H (0≤X≤9) ;Y= { ; { X+37H (0AH≤X≤0FH) DATAS ...

  5. C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

    //编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. #include<conio.h> #include< ...

  6. C#一个16进制数用二进制数表示是几位?

    1个字节是8位,二进制8位:xxxxxxxx 范围从00000000-11111111,表示0到255.一位16进制数(用二进制表示是xxxx) 最多只表示到15(即对应16进制的F),要表示到255 ...

  7. c++描述将一个2进制数转化成10进制数(用到初始化栈,进栈,入栈)

    /* c++描述将2进制数转化成10进制数 问题,1.初始化栈后,用new,不知道delete是否要再写一个函数释放内存, 还是在哪里可以加上delete 2.如果栈满了,我要分配多点空间,我想的办法 ...

  8. 怎么用Python Flask模板jinja2在网页上打印显示16进制数?

    问题:Python列表(或者字典等)数据本身是10进制,现在需要以16进制输出显示在网页上 解决: Python Flask框架中 模板jinja2的If 表达式和过滤器 假设我有一个字典index, ...

  9. MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

    1.编辑框添加变量,并选择变量类型为CString. 2.  使用“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算.

  10. (任意进制转换)将 r 进制数转成 k 进制数

    我们知道任意进制转换为十进制,都是乘以基数的多少次方,然后相加: 十进制转换为任意进制,都是除以基数,然后倒着取余数: 所以这里是用十进制数中转,实现任意进制数的转换 #include<iost ...

随机推荐

  1. Twitter雪花算法 SnowFlake算法 的java实现

    概述 SnowFlake算法是Twitter设计的一个可以在分布式系统中生成唯一的ID的算法,它可以满足Twitter每秒上万条消息ID分配的请求,这些消息ID是唯一的且有大致的递增顺序. 原理 Sn ...

  2. 下载google play下的app

    1.打开appk downland网站 https://apps.evozi.com/apk-downloader/?id=com.cmcm.live 2. 把google play的链接直接贴入 输 ...

  3. 解决input框中加入disabled="disabled"之后,改变字体的颜色(默认的是灰色)

    在input框中加入disabled="disabled"之后,字体默认的就变成灰色了 解决方案 input[disabled]{color:#fff;opacity:1} dis ...

  4. jquery 文字滚动大全 scroll 支持文字或图片 单行滚动 多行滚动 带按钮控制滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. jQuery函数的等价原生函数代码示例

    选择器 jQuery的核心之一就是能非常方便的取到DOM元素.我们只需输入CSS选择字符串,便可以得到匹配的元素.但在大多数情况下,我们可以用简单的原生代码达到同样的效果. .代码如下: //---- ...

  6. 微软BI 之SSRS 系列 - 如何实现报表导航 Navigation 和钻取 Drill Down 的效果

    开篇介绍 如何在 SSRS 报表中实现标签导航 Navigation 和向下钻取 Drill Down的效果? 如同下面这个例子一样 - 在页面第一次加载的时候,默认显示是全部地区的销售总和情况,上面 ...

  7. VMware vCenter Orchestrator

    使用范例: VMware Automation with vCenter Orchestrator http://www.rodmach.com/blog/?p=46 直接从 VSPHERE CLIE ...

  8. Bash shell 命令行 快捷键

    http://linuxtoy.org/archives/bash-shortcuts.html 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl ...

  9. GitHub搭建个人网站详细教程

    GitHub搭建个人网站详细教程: http://blog.csdn.net/gane_cheng/article/details/52203759

  10. CommonJS、AMD、CMD和ES6模块化区别

    本文参考自:https://www.cnblogs.com/chenguangliang/p/5856701.html 1.CommonJS NodeJS是CommonJS规范的实现,webpack ...