`
woxiaoe
  • 浏览: 283306 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java实现的任意进制转换

阅读更多

package com.woxiaoe.algorithm;

import java.util.Stack;
public class Base {
	/**
	 * 将数转为任意进制
	 * @param num
	 * @param base
	 * @return
	 */
	public static String baseString(int num,int base){
		if(base > 16){
			throw new RuntimeException("进制数超出范围,base<=16");
		}
		StringBuffer str = new StringBuffer("");
		String digths = "0123456789ABCDEF";
		Stack<Character> s = new Stack<Character>();
		while(num != 0){
			s.push(digths.charAt(num%base));
			num/=base;
		}
		while(!s.isEmpty()){
			str.append(s.pop());
		}
		return str.toString();
	}
	/**
	 * 16进制内任意进制转换
	 * @param num
	 * @param srcBase
	 * @param destBase
	 * @return
	 */
	public static String baseNum(String num,int srcBase,int destBase){
		if(srcBase == destBase){
			return num;
		}
		String digths = "0123456789ABCDEF";
		char[] chars = num.toCharArray();
		int len = chars.length;
		if(destBase != 10){//目标进制不是十进制 先转化为十进制
			num = baseNum(num,srcBase,10);
		}else{
			int n = 0;
			for(int i = len - 1; i >=0; i--){
				n+=digths.indexOf(chars[i])*Math.pow(srcBase, len - i - 1);
			}
			return n + "";
		}
		return baseString(Integer.valueOf(num),destBase);
	}
}
 
0
1
分享到:
评论
3 楼 zlxzlxzlxzlxzlx 2014-09-04  
这不能算是任意进制之间的转换,只能算是 2、8、10、16 几个进制之间互换···
例如二十六进制、十二进制又该如何呢???
2 楼 woxiaoe 2010-05-30  
huxiaobo136 写道
在JavaTM 2 Platform Standard Ed. 5.0中
indexOf(int ch) 是:
          返回指定字符在此字符串中第一次出现处的索引。
可见,第46行无法处理有重复字符串digths 时的情况!!!!

digths = "0123456789ABCDEF";  里面没有重复的项,
1 楼 huxiaobo136 2010-05-30  
在JavaTM 2 Platform Standard Ed. 5.0中
indexOf(int ch) 是:
          返回指定字符在此字符串中第一次出现处的索引。
可见,第46行无法处理有重复字符串digths 时的情况!!!!

相关推荐

    Java实现任意进制的转换

    在编程领域,进制转换是一项基础且重要的...以上就是Java实现任意进制转换的方法,包括二进制转十六进制、十进制转任意进制以及36进制加法。理解这些概念和方法,对于理解和编写处理数字系统转换的Java代码至关重要。

    Java 小数进制转换,实现任意进制转换为任意进制的方法

    废话不多上干货! /** * 个人数学工具 * * @author Suage */ class Convert { ... //输入进制 private int sysIn; //输出进制 private int sysOut; //输入实际值 private double actualValue;

    java 任意进制转换(源码)

    在Java编程语言中,进制转换是一项基础但...以上就是这个"java 任意进制转换(源码)"程序可能涉及的关键知识点。通过学习和理解这些内容,开发者不仅可以掌握Java的进制转换,还能提升在GUI编程和异常处理方面的技能。

    Java 任意进制整数转换

    任意进制整数的转换,用十进制数作为中转,原则上不能超过10进制数能表示的最大整数。

    进制转换C源码

    本文将基于标题“进制转换C源码”和描述,深入探讨C语言实现不同进制转换的原理及代码实现,同时会涉及与Java语言进制转换差异的讨论。 首先,进制转换是计算机科学中的基本概念,主要包括二进制、八进制、十进制和...

    大整数任意进制转换(2-62进制)

    实现大整数任意进制转换的技术主要包括以下几点: 1. **模运算**:进制转换的核心在于模运算,通过不断地除以目标进制的基数并记录余数,可以得到目标进制下的数值。 2. **位操作**:在二进制和其他二的幂进制之间...

    JAVA M与N进制转换

    使用JAVA实现任意进制之间的转换(进制在10+26=36之间)

    java 26进制转换

    在Java编程语言中,26进制转换是一种特殊形式的编码,它不是标准的计算机科学概念,但在某些特定场景下可能会被用到。通常,我们谈论的进制转换包括二进制、八进制、十进制和十六进制之间的转换。然而,"26进制"通常...

    Java把十进制转成二进制(任意进制)的程序

    在Java编程语言中,将十进制数转换为二进制或其他任意进制是一项常见的任务。这主要涉及到数字系统的基础理论以及Java中的字符串处理和数学运算。...希望这个解释能帮助你理解和实现Java中的进制转换。

    JAVA实现十进制整数(正负)转换为二进制输出

    任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码

    Java实现复杂的进制转换器功能示例

    Java中还有一些内置的函数来辅助实现进制转换,比如`Integer.toString(int num, int radix)`可以将十进制数转换成任意进制的字符串表示,而`Integer.parseInt(String s, int radix)`则可以将任意进制的字符串转换成...

    将十进制数N转换为r进制的数(Java)代码

    本篇将详细讲解如何用Java编程语言实现将十进制数N转换为任意进制r的数,并以N=3456,r=8为例进行具体阐述。 首先,让我们理解辗转相除法(也称除法法或欧几里得算法),它是转换进制的基本算法之一。对于给定的十...

    任意进制数之间的转换

    任意进制数之间的转化,使用栈的来实现,先转化为十进制数,然后目标进制数。

    Java 实现控制台输入任意字符,转换成十六进制、二进制和十进制

    二进制转换通常通过`Integer.toBinaryString()`来实现,而十六进制转换则可使用`Integer.toHexString()`。 下面是一个简单的Java程序,演示了如何实现这个功能: ```java import java.util.Scanner; public class...

    2-16之间的进制转换

    在这个“2-16之间的进制转换”项目中,我们将深入探讨如何使用Java Swing实现从二进制到十六进制之间任意进制的转换。 首先,我们要理解不同进制的基本概念。二进制(Binary)是计算机科学的基础,仅使用0和1表示...

    java String 与各种进制字符之间的转换

    通常,这样的文件会包含对各种进制转换的测试用例,以验证转换函数的正确性。 总之,理解和掌握Java中String与各种进制字符之间的转换对于日常编程至关重要。通过熟练运用上述方法,可以轻松处理与进制相关的任务,...

    数字各种进制的转换

    本文详细介绍了数字进制转换的基本原理,并通过具体的Java代码示例实现了任意进制之间的转换。通过对非十进制到十进制以及十进制到非十进制的转换过程进行分析,可以帮助读者更好地理解和掌握进制转换的核心算法。在...

    日期_进制转换_时间戳

    2. **自定义任意进制转换**:除了常见的二、八、十、十六进制,这个工具可能还支持转换到其他任意基数的数制,如五进制、七进制或二十二进制等。这对于特定应用场景,比如加密算法或特定的编码系统,可能是必要的。 ...

    进制转换器,2进制十进制八进制十六进制之间任意转换

    Java语言提供了内置的方法进行进制转换。对于整数,可以使用`Integer.toString(int, int)`将整数转换成指定基数的字符串,`Integer.parseInt(String, int)`或`Integer.valueOf(String, int)`将字符串转换回整数。...

Global site tag (gtag.js) - Google Analytics