62进制和10进制相互转换
程序员文章站
2022-03-01 18:06:56
...
使用时间戳作为文件名时,缩短文件名的长度,可以使用此方法。
运行结果:
1570283088299L=Re27oHT
Re27oHT=1570283088299
调用方法:
public static void main(String[] args) {
System.out.println("1570283088299L=" + _10_to_62(1570283088299L));
System.out.println("Re27oHT=" + _62_to_10("Re27oHT"));
}
工具类:(复制后可以直接使用)
package util;
/**
* 转换工具类
*
* @author ALI
*
*/
public class ConversionUtils {
public static void main(String[] args) {
System.out.println("1570283088299L=" + _10_to_62(1570283088299L));
System.out.println("Re27oHT=" + _62_to_10("Re27oHT"));
}
/**
* 10进制转62进制
*
* @param n
* @return
*/
public static String _10_to_62(long n) {
if (n <= 0) {
return "0";
}
String s = "";
long a = 0;
while (n > 0) {
a = n % 62;
if (a < 10) {
s = (char) (a + 48) + s;// 转为0-9
} else if (a < 36) {
s = (char) (a + 55) + s;// 转为A-Z
} else {
s = (char) (a + 61) + s;// 转为a-z
}
n /= 62;
}
return s;
}
/**
* 62进制转10进制
*
* @param s
* @return
*/
public static long _62_to_10(String s) {
long n = 0;
long p = 1;
int c = 0;
for (int i = s.length() - 1; i >= 0; i--) {
c = s.charAt(i);
if (c > 96) {
n += (c - 61) * p;// a-z转为数字
} else if (c > 64) {
n += (c - 55) * p;// A-Z转为数字
} else {
n += (c - 48) * p;// 0-9转为数字
}
p *= 62;
}
return n;
}
}
上一篇: 关于二进制和十进制之间相互转化的问题
下一篇: 3.7java中输入输出文件读取
推荐阅读
-
md5 16位二进制与32位字符串相互转换示例
-
java实现ip地址与十进制数相互转换
-
python模块介绍- binascii:二进制和ASCII互转 以及其他进制转换
-
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
-
10进制整数转62进制的函数
-
C# 2进制、8进制、10进制、16进制...各种进制间的转换(二)搜集的各种转换及方法
-
PHP实现十进制数字与二十六进制字母串相互转换操作示例
-
php实现二进制和文本相互转换的方法
-
Python 十六进制整数与ASCii编码字符串相互转换方法
-
C# 2进制、8进制、10进制、16进制...各种进制间的转换(一) convert 类中的方法