问题:编程实现将一个N进制数转换成M进制数。(c/c++、Java、Javascript、C#、Python)

1、Python 手写算法版

def conversion_num(num, src, dest):
rtn = ''
# 1、校验源和目标是否相同
if src == dest:
rtn = num
# 2、转成10进制#
if src != 10:
num_str = str(num)
num_str = num_str[::-1]
exe_num = 0
dec_num = 0
for num_char in num_str:
# 十六进制处理
if num_char == 'A':
num_char = ''
elif num_char == 'B':
num_char = ''
elif num_char == 'C':
num_char = ''
elif num_char == 'D':
num_char = ''
elif num_char == 'E':
num_char = ''
elif num_char == 'F':
num_char = '' num_int = int(num_char)
if exe_num == 0:
dec_num += num_int
else:
dec_num += src ** exe_num * num_int
exe_num += 1
num = dec_num
# 3、转成目标进制
if dest == 10:
rtn = num
else:
num = int(num)
while True:
divisor = num // dest
remainder = num % dest
# 十六进制处理
if remainder == 10:
remainder = 'A'
elif remainder == 11:
remainder = 'B'
elif remainder == 12:
remainder = 'C'
elif remainder == 13:
remainder = 'D'
elif remainder == 14:
remainder = 'E'
elif remainder == 15:
remainder = 'F'
rtn = str(remainder) + rtn
if divisor <= 0:
break
else:
num = divisor
# 4、处理空的字符串
if rtn == '':
rtn = ''
return rtn new_num = conversion_num('', 2, 16)
print(new_num) 

2、python内部方法版:

def conversion_num(num, src, dest):
rtn = ''
# 1、校验源和目标是否相同
if src == dest:
rtn = num
# 2、转成10进制#
if src != 10:
dec_num = 0
if src == 2:
dec_num = int(num, 2)
elif src == 8:
dec_num = int(num, 8)
elif src == 16:
dec_num = int(num, 16)
num = dec_num
# 3、转成目标进制
if dest == 10:
rtn = num
else:
if dest == 2:
rtn = bin(num)
elif dest == 8:
rtn = oct(num)
elif dest == 16:
rtn = hex(num)
# 4、处理空的字符串
if rtn == '':
rtn = ''
return rtn new_num = conversion_num('', 2, 16)
print(new_num)

3、

编程实现将一个N进制数转换成M进制数的更多相关文章

  1. NOJ 1012 进制转换(十进制转换成随意进制)

    题目: 进制转换 时间限制(普通/Java) : 1000 MS/ 3000 MS          执行内存限制 : 65536 KByte总提交 : 1819            測试通过 : ...

  2. HDU_2031——十进制转换成R进制

    Problem Description 输入一个十进制数N,将它转换成R进制数输出.   Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=1 ...

  3. iOS 16进制字符串转换成int十进制

    NSRange rangeErr; rangeErr.location = 6; rangeErr.length = 2; NSString *strings = [value substringWi ...

  4. Java中将16进制字符串转换成汉字

    技术交流群:233513714 /** * 将16进制字符串转换成汉字 * @param str * @return */ public static String deUnicode(String ...

  5. N进制数组转换成正整数

    给定一个任意长度的数组,其中的元素按照一定的进制(N进制)来转换成正整数 //把数组中的元素按照N进制转换成为正整数 #include <stdio.h> #include <std ...

  6. Linux c字符串中不可打印字符转换成16进制

    本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...

  7. ip地址转换成16进制long

    <span style="font-size:18px;">public class IpUtil { /** * ip地址转换成16进制long * @param i ...

  8. C++实现16进制字符串转换成int整形值

    开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...

  9. //C语言:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回。

    //函数fun:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回. #include <stdio.h> #pragma warning (disable:4996) ...

随机推荐

  1. P5315 头像上传

    --------------------------------------- 模拟中的模拟 --------------------------------------- FOR---MIKU -- ...

  2. 网络编程一定要看过的socket大山

    python已经可以做很多的东西了.但是要想要和别人互联互通就会涉及到一个关键的模块socket!值得一提的是,其实socket不是python独创的一种模块,而是任何语言都会有的一个部分!自己的程序 ...

  3. linux 下 mac 地址如何查询

    cat     /sys/class/net/eth0/address

  4. H5 实现图片上传预览

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  5. ketlle windows下的安装(最基本)

    ketlle基本介绍 kettle是纯java开发,开源的etl工具.可以在Linux.windows.unix中运行.有图形界面,也有命令脚本还可以二次开发. kettle其实是以前的叫法,现在官方 ...

  6. Defender 防卫者

    发售年份 1980 平台 街机 开发商 Williams 类型 射击 https://www.youtube.com/watch?v=gss3lxeqCok

  7. C# EnumHelper Enum的值,Description,ToString()的相互转换

    首先定义枚举类型,如下: /// <summary> /// 板块 /// </summary> public enum Plate {         [Descriptio ...

  8. LVS详细介绍以及遇到的坑

    LVS详细介绍以及遇到的坑 一,概述 本文介绍了我搭建LVS集群的步骤,并且在使用LVS(Linux Virtual Server)过程中遇到的问题和坑, 二,LVS简单介绍 大家都知道,LVS中文意 ...

  9. Dubbo-Admin 2.6.0使用

    一.下载源码 下载2.6.0的源码 https://github.com/apache/incubator-dubbo/releases/tag/dubbo-2.6.0 二.使用Eclipse打开du ...

  10. 关于DDS的基础知识

    关于DDS的基础知识 声明:这篇博客是我抄别人的,为什么想抄呢,因为他把DDS中的核心部件,相位累加器以及正弦ROM查找表寻址讲得明明白白,我真的好想把这篇文章据为己有. DDS是直接数字式频率合成器 ...