java 64进制转10进制_java进制转换
import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.IntStream;/**
* 26/52進制與10進制互轉工具類
*
* @author
*
**/
public classDecimal52 {private static final int LOWER_A = 97;private static final int LOWER_Z = 123;private static final int UPPER_A = 65;private static final int UPPER_Z = 91;private static final int ZERO = 48;private static final int NINE = 58;private List C_LIST = new LinkedList();private intcharSize;publicDecimal52() {this(true, false, true);
}publicDecimal52(boolean upperOnly, boolean lowerOnly, boolean hasNum) {if(hasNum) {
IntStream.range(ZERO, NINE).forEach((c)-> C_LIST.add((char) c));
}if(upperOnly) {
IntStream.range(UPPER_A, UPPER_Z).forEach(
(c)-> C_LIST.add((char) c));
}else if(lowerOnly) {
IntStream.range(LOWER_A, LOWER_Z).forEach(
(c)-> C_LIST.add((char) c));
}else{
IntStream.range(UPPER_A, UPPER_Z).forEach(
(c)-> C_LIST.add((char) c));
IntStream.range(LOWER_A, LOWER_Z).forEach(
(c)-> C_LIST.add((char) c));
}
charSize=C_LIST.size();
}/**
* @version 1.0.0
* @Description 10進制轉26/52進制
* @return
**/
public String getDecimal(intnum) {if (num < 0)return null;
StringBuilder sb= newStringBuilder();if (num >=charSize) {
sb.append(this.getDecimal(num /charSize));
}int least = num %charSize;
sb.append(C_LIST.get(least));returnsb.toString();
}/**
* @version 1.1
* @Description N進制轉10進制
* null非法字符轉換
* @return
**/
publicBigDecimal getDecimalism(String str) {
BigDecimal num= BigDecimal.valueOf(0);char[] cNum =str.toCharArray();int length =cNum.length;for (charc : cNum) {if (C_LIST.indexOf(c) < 0)return null;
num=num.add(BigDecimal.valueOf(C_LIST.indexOf(c)).multiply(
BigDecimal.valueOf(Math.pow(charSize, (--length)))));
}returnnum;
}/**
* @version 1.0.0
* @Description 10進制轉N進制
* @return
**/
publicString getDecimal(BigDecimal num) {if (num.compareTo(BigDecimal.valueOf(0)) < 0) {return null;
}
StringBuilder sb= newStringBuilder();
BigDecimal[] divideAndRemainder=num.divideAndRemainder(BigDecimal
.valueOf(charSize));if (divideAndRemainder[0].intValue() > 0) {
sb.append(this.getDecimal(divideAndRemainder[0]));
}int least = divideAndRemainder[1].intValue();
sb.append(C_LIST.get(least));returnsb.toString();
}
}
總結
以上是生活随笔為你收集整理的java 64进制转10进制_java进制转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器人 陆梅东_上海乐高创客工作坊活动顺
- 下一篇: java 监控执行时间_java-监测方