编程实现将一个N进制数转换成M进制数
问题:编程实现将一个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进制数的更多相关文章
- NOJ 1012 进制转换(十进制转换成随意进制)
题目: 进制转换 时间限制(普通/Java) : 1000 MS/ 3000 MS 执行内存限制 : 65536 KByte总提交 : 1819 測试通过 : ...
- HDU_2031——十进制转换成R进制
Problem Description 输入一个十进制数N,将它转换成R进制数输出. Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=1 ...
- iOS 16进制字符串转换成int十进制
NSRange rangeErr; rangeErr.location = 6; rangeErr.length = 2; NSString *strings = [value substringWi ...
- Java中将16进制字符串转换成汉字
技术交流群:233513714 /** * 将16进制字符串转换成汉字 * @param str * @return */ public static String deUnicode(String ...
- N进制数组转换成正整数
给定一个任意长度的数组,其中的元素按照一定的进制(N进制)来转换成正整数 //把数组中的元素按照N进制转换成为正整数 #include <stdio.h> #include <std ...
- Linux c字符串中不可打印字符转换成16进制
本文由 www.169it.com 搜集整理 如果一个C字符串中同时包含可打印和不可打印的字符,如果想将这个字符串写入文件,同时方便打开文件查看或者在控制台中打印出来不会出现乱码,那么可以将字符串中的 ...
- ip地址转换成16进制long
<span style="font-size:18px;">public class IpUtil { /** * ip地址转换成16进制long * @param i ...
- C++实现16进制字符串转换成int整形值
开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...
- //C语言:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回。
//函数fun:将一个由字符0和1组成的表示二进制数的字符串,转换成相应的十进制数返回. #include <stdio.h> #pragma warning (disable:4996) ...
随机推荐
- Vue 中 diff 算法后更新 DOM 的方法
vue 2.0加入了 virtual dom,在 node_modules\vue\src\core\vdom\patch.js 中会对虚拟 DOM 进行 diff 算法等,然后更新 DOM. 网上的 ...
- C# DataView数据处理的几种方法
1.找到刚删除的所有列 DataView dv = dt.DefaultView; dv.Delete(); dv.Delete(); //找出所有刚删除掉的行 1.5 dv.RowStateFilt ...
- laravel的ORM模型的find(),findOrFail(),first(),firstOrFail(),get(),list(),toArray()之间的区别
find($id)需要一个id并返回一个模型.如果不存在匹配的模型,则返回null. findOrFail($id)需要一个id并返回一个模型.如果不存在匹配的模型,则会引发错误, 它会抛出一个err ...
- Idea动态java模板配置
使用全能idea工具可以可以大大的提升开发效率,其中有个特别有用技能跟大家分享一下. 相比大家都用过idea的快速插入代码功能,插入诸如getter,setter还有构造函数生成,做到了只需一键点击就 ...
- 黄聪:微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付
一.首先先确定H5支付权限已经申请! 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB ...
- [蓝桥杯]PREV-25.历届试题_城市建设
问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修.市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他. C市中有n个比较重要的地点,市长希望这些地点重点被考虑.现在 ...
- 子线程更新UI界面的2种方法
一.一般我们都会在子线程完成一些耗时的操作. 1.Android中消息机制: 2.知识点: Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队, ...
- excle 填充单元格内容到相同长度
=CONCATENATE(REPT("0",4-LEN(H1)),H1)
- qnx gpio
in order to set gpio in qnx, you can use msmgpiotool # msmgpiotool gpiotool usage: gpiotool <comm ...
- js判断是否安装某个android app,没有安装下载该应用(websocket通信,监听窗口失去焦点事件)
现在经常有写场景需要提示用户下载app, 但是如果用户已经安装,我们希望是直接打开app. 实际上,js是没有判断app是否已经安装的方法的,我们只能曲线救国. 首先,我们需要有call起app的sc ...