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

将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. 纯css解决div隐藏浏览器原生滚动条,但保留鼠标滚动效果的问题

    当我们的内容超出了我们的div,往往会出现滚动条,影响美观.尤其是当我们在做一些导航菜单的时候.滚动条一出现就破坏了UI效果.  我们不希望出现滚动条,也不希望超出去的内容被放逐,就要保留鼠标滚动的效 ...

  2. Eclipse添加tomcat服务器以及解决404的问题

    Eclipse JavaEE IDE添加tomcat服务器 1. 先做准备工作,首先下载工具 点击下方链接下载     1) Tomcat v7.0     2) Eclipse IDE for Ja ...

  3. Linux下C结构体初始化[总结]

    1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...

  4. 阿里云centos配置nginx和nodejs

    今天新买了阿里云,想把网站跑起来,于是记录跑起来的过程 1.购买域名 2.购买解析 3.购买ecs主机 4.ssh登录主机 5.安装vsftpd 6.配置ftp用户.文件夹.权限 7.安装nginx/ ...

  5. java 让图片变黑白

    import java.awt.Image;import java.awt.color.ColorSpace;import java.awt.image.BufferedImage;import ja ...

  6. Docker 容器入门

    1.1 容器简介 1.1.1 什么是 Linux 容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件.容器提供的镜像包含了应用的所有依赖项, ...

  7. Android 模仿微信启动动画

    本文内容 环境 项目结构 演示微信启动动画 本文演示微信启动动画.请点击此处下载,自行调试. 顺便抱怨一下,实践性(与研究性质的相对)技术博的"七宗罪": 第一宗罪,错字连篇,逻辑 ...

  8. activemq 控制面板里的 Number Of Pending Messages、 Messages Enqueued、Messages Dequeued含

    Number Of Consumers  消费者 这个是消费者端的消费者数量 Number Of Pending Messages 等待消费的消息 这个是当前未出队列的数量.可以理解为总接收数-总出队 ...

  9. powerdesigner 不显示表字段只显示表名

    在空白的地方右键选择 Display Preferences然后在左边的General Settings里选Table然后把Columns 的All Columns勾上 如果能帮上您,请选为满意答案, ...

  10. C#.NET常见问题(FAQ)-如何把定义存放类实例的数组

    数组存放的可以是普通的int,double,string类型,也可以是自定义的类的实例   如果数组长度未知,可以用list对象存放   更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: h ...