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

将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. 大数据开发实战:Spark Streaming流计算开发

    1.背景介绍 Storm以及离线数据平台的MapReduce和Hive构成了Hadoop生态对实时和离线数据处理的一套完整处理解决方案.除了此套解决方案之外,还有一种非常流行的而且完整的离线和 实时数 ...

  2. Android -- ViewPager切换动画,PageTransformer

    transformPage(View view, float position) view就是滑动中的那个view,position这里是float类型,是当前滑动状态的一个表示,比如当滑动到正全屏时 ...

  3. [转]nodejs深入学(7)理解Buffer

    原文: https://www.jianshu.com/p/e3f14cdf78f1 --------------------------------------------------------- ...

  4. LInux 解压缩文件

    常用命令有2个,一个是tar,一个是zip,二选一就行 有的服务器没有安装zip命令,就只有tar可以用,我个人建议还是安装一个zip好一些,tar实在太繁琐 1.解压 tar -zxvf ./xxx ...

  5. Android 演示 DownloadManager——Android 下载 apk 包并安装

    本文内容 环境 项目结构 演示下载 参考资料 本文是 github 上 Trinea-Android-common 和 Trinea-Android-Demo 项目的一部分,将下载部分分离出来,看看如 ...

  6. Fragment的setUserVisibleHint方法实现懒加载,但setUserVisibleHint 不起作用?

    我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在 ...

  7. ArcMap工具箱参数名称的Bug

    已经忍了很久了,今天一定要说一说,强大的 ArcGIS居然还存在这种Bug问题.如下图所示:使用了追加工具,有三个要素图层,且三个数据与目标数据不是同一数据,但它们的名称一致,这样执行,将会出现&qu ...

  8. Linux配置流程

    Linux中常用操作命令 http://www.cnblogs.com/laov/p/3541414.html#zhiling Linux下安装jdk并配置环境变量 http://jingyan.ba ...

  9. php获取当前时间的方法

    1.获取当前时间 date('Y-m-d H:i:s', time())   2.字符串转时间 date('Y-m-d H:i:s',strtotime('2018-8-21 22:00:00'))

  10. I/O Mutiplexing poll 和 epoll

    上一篇介绍了select的基本用法,接着来学习一下poll和epoll的基本用法.首先来看poll: #include <sys/poll.h> int poll (struct poll ...