`
jsczxy2
  • 浏览: 1277540 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

java十进制转换N进制并反转换的工具类

    博客分类:
  • java
阅读更多
public class NumericConvertUtil {
	/**
	 * 在进制表示中的字符集合
	 */
	final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
			'9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
			'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',
			'Z' };

	/**
	 * 将十进制的数字转换为指定进制的字符串
	 * 
	 * @param n 十进制的数字
	 * @param base 指定的进制
	 * @return
	 */
	public static String toOtherBaseString(long n, int base) {
		long num = 0;
		if (n < 0) {
			num = ((long) 2 * 0x7fffffff) + n + 2;
		} else {
			num = n;
		}
		char[] buf = new char[32];
		int charPos = 32;
		while ((num / base) > 0) {
			buf[--charPos] = digits[(int) (num % base)];
			num /= base;
		}
		buf[--charPos] = digits[(int) (num % base)];
		return new String(buf, charPos, (32 - charPos));
	}

	/**
	 * 将其它进制的数字(字符串形式)转换为十进制的数字
	 * 
	 * @param str 其它进制的数字(字符串形式)
	 * @param base 指定的进制
	 * @return
	 */
	public static long toDecimalism(String str, int base) {
		char[] buf = new char[str.length()];
		str.getChars(0, str.length(), buf, 0);
		long num = 0;
		for (int i = 0; i < buf.length; i++) {
			for (int j = 0; j < digits.length; j++) {
				if (digits[j] == buf[i]) {
					num += j * Math.pow(base, buf.length - i - 1);
					break;
				}
			}
		}
		return num;
	}

	public static void main(String[] args) {
		System.out.println(toOtherBaseString(16857120L, 36));
		System.out.println(toDecimalism("A1B1AJASWDE", 36));
	}
}

 

分享到:
评论
1 楼 peakandyuri 2019-04-25  
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Java本身实现了转换
Integer.toString(23333, 32);
Integer.valueOf("aaf3", 32);

相关推荐

    Java实现的进制转换工具类完整示例

    Java实现的进制转换工具类完整示例 Java实现的进制转换工具类是Java语言中的一种常用工具类,用于实现各种进制之间的转换操作,如二进制、十六进制、字符串、数组等。该工具类主要提供了将字节数组转换为十六进制...

    java中进制转换(二进制,十进制,十六进制)及字节数组与十六进制的转换

    在Java编程中,进制转换是一项基础且重要的技能,尤其在处理数据传输、网络通信(如蓝牙通信)或者低级别数据处理时。本篇将详细阐述如何在Java中进行二进制、十进制和十六进制之间的转换,以及字节数组与十六进制...

    java 26进制转换

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

    JAVA 进制转换工具V1.0

    此JAVA开发的进制转换工具V1.0提供了便捷的方式,帮助用户进行二进制、八进制、十进制和十六进制之间的相互转换。对于编程人员和学习计算机科学的人来说,这种工具具有很高的实用价值。 在Java语言中,进制转换主要...

    java实现各进制之间转换

    // 将十进制转换为八进制 ``` 2. **八进制转二/十/十六进制** 同样的,我们可以先将八进制数转换为十进制,再转换为其他进制。例如,将八进制数"17"转换为十六进制: ```java String octal = "17"; int ...

    进制转换工具类

    标题中的“进制转换工具类”指的是一个编程中用于进行不同进制之间转换的实用工具类。在计算机科学中,进制转换是非常基础且重要的概念,常见的进制有二进制(Binary)、八进制(Octal)、十进制(Decimal)和十六...

    进制转换器(java)

    本项目名为"进制转换器(java)",它是一个小巧的工具,专门用于进行2、8、10和16进制之间的转换,特别是针对整数类型。以下将详细讲解进制转换的基本原理以及在Java中如何实现这些转换。 首先,我们来看二进制...

    java进制转换大全

    本文将详细介绍Java中进行进制转换的各种方法,包括但不限于使用`Integer`类的方法和`String`类的`format`方法。 ### 1. 使用`Integer`类进行进制转换 #### 1.1 十进制转其他进制 - **十进制转十六进制**:使用`...

    JAVA实用进制转换.pdf

    Java提供了多种方法来进行进制转换,其中一部分方法是在`java.lang.Integer`类中。 1. `Integer.toBinaryString(int i)`:将一个十进制整数转换为一个二进制的字符串表示形式。 2. `Integer.toOctalString(int i)`...

    大数16进制向10进制转换

    - **基础原理**:大数16进制转换为10进制的核心是逐位进行乘以16的幂并累加。具体步骤如下: 1. 从右向左,将16进制数的每一位视为16的幂次方,例如最右边的一位对应16^0,第二位对应16^1,以此类推。 2. 对于每...

    二进制、十进制、十六进制相互转换的Java程序

    在编程领域,尤其是在Java开发中,常常需要处理各种数值,而这些数值可能以二进制、十进制或十六进制的形式存在。本程序提供了一个简单的GUI界面,用于实现这三种进制之间的相互转换,方便用户理解和操作。下面将...

    java工具类 string转10进制sacii byte数组再转16进制字符数组再转16进制byte数组 string与BCD互转

    java工具类 : string转10进制sacii byte数组、 10进制sacii byte数组转16进制字符数组、 16进制字符数组转16进制byte数组、 string与BCD互转等方法,包含多个转换方法, 足够满足日常解包组包需求

    大数进制转换工具 for mac

    标题中的“大数进制转换工具 for mac”指的是一个专为Mac操作系统设计的应用程序,用于进行大数值的进制转换。在计算机科学中,大数处理是指处理超过标准整型或浮点型数据范围的数值,这对于加密算法、数学计算以及...

    十进制转十六进制包含大小端设置_大小端_matlab_十进制_十六进制_

    本文将详细讨论大小端模式,并通过MATLAB实现一个将十进制数转换为十六进制数的函数,同时允许用户选择大小端模式。 首先,我们来解释一下大小端模式。在多字节的数据类型(如32位整数)中,最高有效位(MSB)和...

    10进制和62进制互转工具类

    此文件为进制转换工具类,用于10进制和62进制互转,帮助大家解决问题

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

    将十进制转换为二进制,可以使用上述的“除以2取余法”。 进制转换器的应用广泛,不仅限于编程,也用于数学、工程和通信等多个领域。理解不同进制系统间的转换,对于学习和解决涉及数字表示和计算的问题至关重要。...

    十进制与unicode互转

    本资源主要关注的是“十进制与Unicode”之间的转换,这在Java编程中尤其常见,因为Java使用Unicode作为其内部字符集。Unicode是一个包含世界上几乎全部字符的编码标准,而十进制则是我们日常计算中最常用的数制系统...

    java二进制运算器(加、见、乘、除)

    7. **二进制转换**: 在Java中,我们可以使用Integer.toBinaryString()方法将十进制数转换为二进制字符串,而Integer.parseInt()或Integer.valueOf()可以将二进制字符串转换回十进制数。 8. **实现二进制运算器**: ...

    使用AndroidStudio开发简易进制转换计算器

    例如,从十进制转换到二进制,我们可以使用模2除法,逐位收集余数;从二进制转换到十进制,我们可以使用按位乘以2的幂次之和的方法。对于其他进制,原理类似,只是基数不同。 为了使应用更具用户友好性,我们还可以...

    日期_进制转换_时间戳

    进制转换工具允许程序员在这些不同的数制之间自由转换。例如,一个十进制数25在二进制中是11001,八进制中是31,十六进制中是19。这种转换对于理解二进制数据,如内存地址或文件权限,至关重要。 2. **自定义任意...

Global site tag (gtag.js) - Google Analytics