仕事で作った62進数を求めかた(Javaバージョン)
// 62進数変換用テーブル
private static final char tbl62[] = {
'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','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'};
private String toSixtyTwostring(int i) {
// 10進数を62進数に変換する
StringBuffer buf = new StringBuffer();
while (i>=62) {
buf.append(tbl62[(i % 62)]);
i = i / 62;
}
buf.append(tbl62[i]);
return buf.reverse().toString();
}
private int parseInt(String s62) {
String i62 = new StringBuffer(s62).reverse().toString();
int i10 = 0;
// 62進数を10進数に変換する
for (int i=0; i<i62.length(); i++) {
'z')
return -1;
if (i62.charAt(i) > '9' && i62.charAt(i) < 'A')
return -1;
if (i62.charAt(i) > 'Z' && i62.charAt(i) < 'a')
return -1;
for (int j=0; j<tbl62.length; j++) {
i10 += Math.pow(62, (double)i) * j;
break;
}
}
}
return i10;
}
// 62進数変換用テーブル
private static final char tbl62[] = {
'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','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'};
private String toSixtyTwostring(int i) {
// 10進数を62進数に変換する
StringBuffer buf = new StringBuffer();
while (i>=62) {
buf.append(tbl62[(i % 62)]);
i = i / 62;
}
buf.append(tbl62[i]);
return buf.reverse().toString();
}
private int parseInt(String s62) {
String i62 = new StringBuffer(s62).reverse().toString();
int i10 = 0;
// 62進数を10進数に変換する
for (int i=0; i<i62.length(); i++) {
'z')
return -1;
if (i62.charAt(i) > '9' && i62.charAt(i) < 'A')
return -1;
if (i62.charAt(i) > 'Z' && i62.charAt(i) < 'a')
return -1;
for (int j=0; j<tbl62.length; j++) {
i10 += Math.pow(62, (double)i) * j;
break;
}
}
}
return i10;
}