Python实现:十进制数与(2~16进制数)之间的互相转换
(最开始源于牛客网上的一道编程题 : [编程题] 数制转换)
将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进制数)之间的互相转换的更多相关文章
- Java中8进制数和16进制数的表示方法
由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题. 但,二进制数太长了.比如int 类型占用4个字节,32位.比如100,用int类型的二进制数表达将 ...
- 实战项目开发细节:C语言分离一个16进制数取出相应的位1或0
最近在公司开发一个关于钢琴的PCBA项目,项目大概是这样的,完成各种功能的测试,准备去工厂量产的时候可以通过软件快速甄别硬件是否短路,断路等问题. 其中,甄别好坏的方法是通过比如按键,或者其它的操作然 ...
- php 将16进制数串转换为二进制数据的函数
/** * 将16进制数串转换为二进制数据的函数 * @param $hexdata * @return string bindata */ function ...
- 汇编:1位16进制数到ASCII码转换
;============================ ;1位16进制数到ASCII码转换 ; { X+30H (0≤X≤9) ;Y= { ; { X+37H (0AH≤X≤0FH) DATAS ...
- C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225
//编写一个函数:从传入的num个字符中找到最长的一个字符,并通过max传回该串地址. //重点:切记这里a[0]就是一个地址. #include<conio.h> #include< ...
- C#一个16进制数用二进制数表示是几位?
1个字节是8位,二进制8位:xxxxxxxx 范围从00000000-11111111,表示0到255.一位16进制数(用二进制表示是xxxx) 最多只表示到15(即对应16进制的F),要表示到255 ...
- c++描述将一个2进制数转化成10进制数(用到初始化栈,进栈,入栈)
/* c++描述将2进制数转化成10进制数 问题,1.初始化栈后,用new,不知道delete是否要再写一个函数释放内存, 还是在哪里可以加上delete 2.如果栈满了,我要分配多点空间,我想的办法 ...
- 怎么用Python Flask模板jinja2在网页上打印显示16进制数?
问题:Python列表(或者字典等)数据本身是10进制,现在需要以16进制输出显示在网页上 解决: Python Flask框架中 模板jinja2的If 表达式和过滤器 假设我有一个字典index, ...
- MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算
1.编辑框添加变量,并选择变量类型为CString. 2. 使用“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算.
- (任意进制转换)将 r 进制数转成 k 进制数
我们知道任意进制转换为十进制,都是乘以基数的多少次方,然后相加: 十进制转换为任意进制,都是除以基数,然后倒着取余数: 所以这里是用十进制数中转,实现任意进制数的转换 #include<iost ...
随机推荐
- Maven WEB 项目使用ProGuard进行混淆,最佳解决方案
Maven WEB 项目使用ProGuard进行混淆,最佳解决方案 近期公司的Android项目做了混淆,虽说对于保护代码并不是100%的,但混淆后的代码可以使那些不法份子难以阅读,这样也能对代码的保 ...
- 如何去除图片上的文字(PS使用教程)
很多时候由于工作的需要,需要对我们的图片进行修改,修改的同时还想要保存我们的图片背景,所以很多人就不知道怎么弄了,小编跟大家分享一下使用PS如何简单的去掉图片上的文字,希望对大家有所帮助! 方法/步骤 ...
- 揭破android中的闹钟app 二
· 这节,我们通过wheelview来模仿一个简易的正点闹钟. 我这里不说wheelview来龙去脉,只阐述几个简单的方法,如果,想看一看具体wheelview的内容,请看下面两篇文章: androi ...
- 关于ThinkPhp中getField方法存在的问题
在ThinkPhp中我们可以通过以下方式获取数据库数据 query:直接执行SQL查询操作 find:查询单选数据集 getField查询字段值 select:查询数据集 其他...... 但今天 ...
- awk学习 (good)
原文:http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓 ...
- file: /SourceCache/IOKitUser_Sim/IOKitUser-920.1.11/hid.subproj/IOHIDEventQueue.c, line: 512
//修改main.m 文件. typedef int (*PYStdWriter)(void *, const char *, int); static PYStdWriter _oldStdWrit ...
- PHP传值与传址(引用)
传值和传引用的区别在于,如果一个参数比较大,占用大量的内存空间,那么传引用的话就会节省拷贝空间. 传值:是把实参的值赋值给行参 ,那么对行参的修改,不会影响实参的值 传引用 :真正的以地址的方式传递参 ...
- 微信小程序 - 非入侵式布局
非入侵式布局,就是不影响原有内容以及代码,增加用户体验感(UE)的一种方式. 例如我们每个接口必须返回: 0:请求成功 -1:请求失败 .... 这样就便于前端判断数据是否加载成功,然后以客观的方式提 ...
- uni/微信小程序 - 使用外部字体
字体图标/字体仅支持网络css路径(也就是不支持本地路径) 参考于:https://blog.csdn.net/u013451157/article/details/79825740
- vsphere脚本等