问题:将m进制num转换为n进制 (2 <= m,n <= 62) ?
总体思路是:先将m进制转换为10进制,再将10进制转为n进制。

1、m进制数num转为10进制
从低位到高位按权展开即可。
例如:8进制1356 转为10进制
6*8^0 + 5 * 8^1 + 3 * 8^2 + 1 * 8^3 = 750
2、10进制转为n进制
采用除留取余,逆序排列。
例如:10进制65036转为16进制
65036 除 16,余数 12(C),商4064
4064 除 16,余数 0(0),商254
254 除 16,余数 14(E),商15
15除16,余数 15(F),商0,结束
得16进制为 FE0C


import java.util.Scanner;
import java.util.Stack;public class Hawei23 {private static char[] array = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();private static String numStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";//10进制转为其他进制,除留取余,逆序排列public static String _10_to_N(long number, int N) {Long rest = number;Stack<Character> stack = new Stack<Character>();StringBuilder result = new StringBuilder(0);while (rest != 0) {stack.add(array[new Long((rest % N)).intValue()]);rest = rest / N;}for (; !stack.isEmpty();) {result.append(stack.pop());}return result.length() == 0 ? "0":result.toString();}// 其他进制转为10进制,按权展开public static long N_to_10(String number, int N) {char ch[] = number.toCharArray();int len = ch.length;long result = 0;if (N == 10) {return Long.parseLong(number);}long base = 1;for (int i = len - 1; i >= 0; i--) {int index = numStr.indexOf(ch[i]);result += index * base;base *= N;}return result;}public static void main(String[] args) {// TODO Auto-generated method stubScanner in = new Scanner(System.in);while(in.hasNext()){int src = in.nextInt();int aim = in.nextInt();String intStr = in.next();Long tmp= N_to_10(intStr, src);                     String tmp2 = _10_to_N(tmp, aim);String newStr = tmp2.replaceFirst("^0*", "");  System.out.println(newStr);}}}

Java实现任意进制转换相关推荐

  1. Java实现任意进制转换拓展进制转换计算器

    JAVA实现蓝桥杯基础练习十六进制转换八进制-----------拓展进制转换计算器 这个题目我浏览了大量的道友的文章发现十分麻烦,但仍然从其中收益菲薄,所以在这里分享一下我认为最好的代码 impor ...

  2. 任意进制转换java_Java 任意进制转换(两种方式)

    本文提供两种Java实现任意进制转换的方法: 方法一:利用 Integer 实现进制转换 1. Integer类的方法toBinaryString(),Integer.toOctalString(), ...

  3. c语言进制转换pdf下载,C语言实现任意进制转换.doc

    C语言实现任意进制转换.doc includestdio.h#includemath.h#includestring.hvoid dtox(double num,int jz)char xnum100 ...

  4. 任意进制转换的递归实现

    任意进制转换的递归实现 原始链接:http://weolee.spaces.live.com/blog/cns!52FBB34F02E029D9!650.entry www.163online.cn ...

  5. 在线2-36任意进制转换工具

    在线2-36任意进制转换工具 在线2-36任意进制转换工具 本工具支持将数字从在2-36进制中任意进制间相互转换,只支持整数,纯客户端实时计算. https://tooltt.com/hex/

  6. Java提供的进制转换

    Java提供的进制转换 Integer.toHexString(int i); //十进制转成十六进制Integer.toOctalString(int i); //十进制转成八进制Integer.t ...

  7. 任意进制转换成十进制间互化(ASCII码法)(C/C++)

    目录 1 最早的版本(C) 2  针对上面的问题进行改进(C++) 2.1  任意进制转换成十进制(运用字符串) 2.2  十进制转换成任意进制(运用数组逆序存储+取模作除法) 3  ASCII码参考 ...

  8. Java的API进制转换

    利用Java的API进制转换 一.其他进制转十进制 1.使用Integer.parseInt()方法 2.使用Integer.valueOf()方法 二.十进制转换其他进制 1.使用Integer.t ...

  9. Java的万能进制转换

    万能进制转换; public classScaleUtil { public static final int SCALE_DECIMAL= 10; public static final int S ...

最新文章

  1. SQL学习教程:基础教程高级教程
  2. 如何采用简化方法进行需求分析
  3. 2021-04-17 安装Ubuntu18.0.4 的深度学习训练服务器
  4. 上面两点下面一个三角形_这种胖胖的圆角三角形,在PPT里居然有这么多种画法!...
  5. ASP.NET基础教程-Web 自定义控件的使用-根据属性值从数据库中提取数据并在页面上自动生成一个表格...
  6. linux中iptable中端口,Linux如何打开iptables中的端口
  7. python 中调用shell命令
  8. centos7利用nexus离线搭建局域网pypi源
  9. Python实现计数排序
  10. 如何让mysql配置文件生效_mysql配置文件生效测试
  11. gradle-学习笔记(2)-多项目构建
  12. html静态网页制作制作表格,北邮HTML静态网页制作.docx
  13. java 异或运算符^
  14. 身为码农,为12306说两句公道话
  15. html 点击方块旋转,前端每日实战:86# 视频演示如何用纯 CSS 创作一个方块旋转动画...
  16. java判断excel格式_Java 设置Excel数据验证
  17. Python3中print函数的换行
  18. java程序员必读书目推荐
  19. 2.Enable ADB integration' to be enabled.
  20. 【转载】亡灵对抗人类的一点战术

热门文章

  1. Class16:初学python之练习题
  2. 如何优化cocos2d程序的内存使用和程序大小
  3. 动态规划(4)滑雪问题
  4. Bonjour(苹果电脑公司的服务器搜索协议商标名)
  5. 贝叶斯分类(这个讲的比较清晰,一看就明白)
  6. 几个常用的FFmpeg小技巧
  7. 【Web技术】1002- 应式布局,你需要知道的一切
  8. 二维数组 --> 概念
  9. Android studio成功运行自带模拟器问题详解,捎带中文用户名路径有感
  10. [学习笔记]设计模式[6]-{适配器模式外观模式}