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

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

其中的辅助函数为:

  1. # 辅助功能函数
  2. def ABCToNum(char):
  3. if char in "":
  4. return int(char)
  5. if char in "Aa" :
  6. return 10
  7. if char in "Bb":
  8. return 11
  9. if char in "Cc" :
  10. return 12
  11. if char in "Dd":
  12. return 13
  13. if char in "Ee" :
  14. return 14
  15. if char in "Ff":
  16. return 15
  17. # 辅助功能函数
  18. def NumToABC(intN):
  19. if intN in [0,1,2,3,4,5,6,7,8,9]:
  20. return intN
  21. if intN ==10 :
  22. return 'A'
  23. if intN ==11 :
  24. return 'B'
  25. if intN ==12 :
  26. return 'C'
  27. if intN ==13 :
  28. return 'D'
  29. if intN ==14 :
  30. return 'E'
  31. if intN ==15 :
  32. return 'F'

该题的完整实现代码:

  1. # 辅助功能函数
  2. def ABCToNum(char):
  3. if char in "":
  4. return int(char)
  5. if char in "Aa" :
  6. return 10
  7. if char in "Bb":
  8. return 11
  9. if char in "Cc" :
  10. return 12
  11. if char in "Dd":
  12. return 13
  13. if char in "Ee" :
  14. return 14
  15. if char in "Ff":
  16. return 15
  17. # 辅助功能函数
  18. def NumToABC(intN):
  19. if intN in [0,1,2,3,4,5,6,7,8,9]:
  20. return intN
  21. if intN ==10 :
  22. return 'A'
  23. if intN ==11 :
  24. return 'B'
  25. if intN ==12 :
  26. return 'C'
  27. if intN ==13 :
  28. return 'D'
  29. if intN ==14 :
  30. return 'E'
  31. if intN ==15 :
  32. return 'F'
  33.  
  34. # 将X进制转为int十进制的功能函数:(乘X次方各位数的加和法)
  35. def XToInt(strNum,X):
  36. sum = 0
  37. strNum = strNum.lstrip("") #去掉开始的0(前导零)
  38. length = len(strNum)
  39. for i in range(length):
  40. sum += ABCToNum(strNum[i])*(X**(length-i-1))
  41. return sum
  42. # 将int十进制转为Y进制的功能函数:(除Y取余法)
  43. def intToY(num,Y):
  44. res = ""
  45. while (num!=0):
  46. # temp=
  47. # temp=
  48. res = str(NumToABC(num%Y))+res
  49. num = num//Y #取商
  50. # res = int(res)
  51. res.upper()
  52. return res
  53.  
  54. def NumberSystemConversion():
  55. X,strInput,Y = input().split()
  56. intA = XToInt(strInput,int(X))
  57. outB = intToY(intA,int(Y))
  58. print(outB)
  59. 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. SQL SERVER 的用户数,连接,连接池 license

    SQL SERVER 理论上有32767个逻辑连接,SQL SERVER根据系统自行调配连接池. 首先 ,操作系统的用户数:即同时通过网络连接到这台电脑上面的用户限制,以5用户操作系统,搭建的文件服务 ...

  2. 十个 Laravel 5 程序优化技巧

    性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能. 接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论. 这里是简单的列表: 配 ...

  3. 【API规范】OpenAPI规范

    OpenAPI规范 openAPI 3.0_百度搜索 OpenAPI Specification 2.0 - CSDN博客 APP相关_API 列表_OpenAPI 2.0_开发指南_移动推送-阿里云 ...

  4. spring mvc 学习01 搭建

    /** * */ /** * @author Administrator * */ package com.study01.controller; import org.springframework ...

  5. C语言变长数组data[0]【总结】

    1.前言 今天在看代码中遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在linux内核中,结构体中经常用到data ...

  6. discuz上传头像失败怎么解决

    刚安装好的discuz程序,可能需要我们做许多修改,而头像上传失败则是最为常见的问题之一,那么discuz上传头像失败怎么解决呢 进入ftp,打开跟目录下config文件 下载"config ...

  7. Mybatis源码分析之Mapper执行SQL过程(三)

    上两篇已经讲解了SqlSessionFactory的创建和SqlSession创建过程.今天我们来分析myabtis的sql是如何一步一步走到Excutor. 还是之前的demo    public  ...

  8. Binary Search二分法搜索C++程序

    二分法基本上学计算机的都听过,但是有人不知道的就是其实二分法是减治法的思想. 所谓减治法和分治法有一个主要差别就是减治法是减去一般,就是分治之后只需要解决原问题的一半就可以了得到全局问题的解了.所以速 ...

  9. word你必须懂的。

    1.所有文字都有默认样式 2.可以调整样式,选择字体,级别,段落,缩进等设置

  10. Linux中使用pwconv实现passwd中密码到shadow

    1.功能说明:开启用户的投影密码. 2.语 法:pwconv 3.个人理解:就是将/etc/passwd里的密码用x代替,并将真实密码(当然是加密后的)转移到/etc/shadow里面. 4.补充说明 ...