`
jsczxy2
  • 浏览: 1256282 次
  • 性别: 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工具类 string转10进制sacii byte数组再转16进制字符数组再转16进制byte数组 string与BCD互转

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

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

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

    32位(二进制-十六进制-十进制)转换工具

    个人写的一个小程序 用来把32位(二制从选择框钓选确定)转换成十进制、十六进制 写与硬件相关的程序特别需要

    IEEE_754_16进制转十进制浮点数 工具

    IEEE_754_16进制转十进制浮点数 工具 测试有效

    JAVA java工具类大全

    20:MathsTool 取一个int十进制数二进制下的第p位 21:ObjectCopyTool 22:PageVo 分页器 23:PropertyUtils 属性工具类 24:QuerySqlUtil 25:RegexUtils 26:TestClass 28:UploadUtils 文件上传工具 29:UtilTest...

    Java核心技术II(第8版)

    1.3 读入和写出二进制数据 1.3.1 随机访问文件 1.4 ZIP文档 1.5 对象流与序列化 1.5.1 理解对象序列化的文件格式 1.5.2 修改缺省的序列化机制 1.5.3 序列化单例和类型安全的枚举 1.5.4 版本管理 1.5.5 为克隆使用...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java开源包11

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包6

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包4

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包9

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包101

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包5

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包8

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包10

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包1

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包3

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

Global site tag (gtag.js) - Google Analytics