欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java 64进制转10进制_java进制转换

发布时间:2025/4/16 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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进制转换的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。