两种方法实现10进制和62进制互转
2013-08-02 10:42
288 查看
import java.util.Stack; public class Test { private static char[] charSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); /** * 将10进制转化为62进制 * @param number * @param length 转化成的62进制长度,不足length长度的话高位补0,否则不改变什么 * @return */ public static String _10_to_62(long number, int length){ Long rest=number; Stack<Character> stack=new Stack<Character>(); StringBuilder result=new StringBuilder(0); while(rest!=0){ stack.add(charSet[new Long((rest-(rest/62)*62)).intValue()]); rest=rest/62; } for(;!stack.isEmpty();){ result.append(stack.pop()); } int result_length = result.length(); StringBuilder temp0 = new StringBuilder(); for(int i = 0; i < length - result_length; i++){ temp0.append('0'); } return temp0.toString() + result.toString(); } /** * 将62进制转换成10进制数 * * @param ident62 * @return */ private static String convertBase62ToDecimal( String ident62 ) { int decimal = 0; int base = 62; int keisu = 0; int cnt = 0; byte ident[] = ident62.getBytes(); for ( int i = ident.length - 1; i >= 0; i-- ) { int num = 0; if ( ident[i] > 48 && ident[i] <= 57 ) { num = ident[i] - 48; } else if ( ident[i] >= 65 && ident[i] <= 90 ) { num = ident[i] - 65 + 10; } else if ( ident[i] >= 97 && ident[i] <= 122 ) { num = ident[i] - 97 + 10 + 26; } keisu = (int) java.lang.Math.pow( (double) base, (double) cnt ); decimal += num * keisu; cnt++; } return String.format( "%08d", decimal ); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("62System=" +_10_to_62(Integer.parseInt("35174605"), 5)); System.out.println("10System=" +convertBase62ToDecimal("2NaWL")); } }
运行结果:
62System=2NaWL
10System=35174605
两种方法均转化成功
相关文章推荐
- 两种方法实现10进制和62进制互转
- 两种方法实现10进制和62进制互转
- 两种方法实现10进制和62进制互转
- php实现将任意进制数转换成10进制的方法
- 两种方法把10进制转化为16进制查表法第二种
- 进制转换的一种思路两种实现方法
- JS实现颜色的10进制转化成rgba格式的方法
- 网页前端登录js按Enter回车键实现登陆的两种方法
- 实现数据库同步的两种方法,SQL JOB和发布订阅
- jQuery 两种方法实现IE10以下浏览器的placeholder效果
- php页面回退的两种实现方法,php表单回退
- java 定时器实现的两种方法
- 两种方法实现MFC 对话框最大化时控件也随比例最大化或者还原
- 队列应用银行排队问题模拟:计算客户的平均停留时间和等待时间以及每个客户的时间信息,两种方法实现
- 线程的两种实现方法 和 进程的两种实现方法 。
- C# 定义常量 两种实现方法
- Java 多线程的两种简单实现方法
- js实现二分搜索的两种方法
- 海量数据去重排序--bitmap(位图法)在java中的实现的两种方法
- Struts2.X的Interceptor的两种实现方法