版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/starjuly/article/details/72764842
public class Test {
public static void main(String[] args) {
String string = "1100000100101001110110010";
String result = getDecimal(string);
System.out.println(result);
}
private static String getDecimal(String string) {
char[] ca = string.toCharArray();
//拼接2进制 每隔8位添加一个空格
StringBuilder sb = new StringBuilder();
for (int j = 0; j < ca.length; j++) {
sb.append(ca[j]);
if ((j + 1) % 8 == 0) {
sb.append(" ");
}
}
StringBuilder result = new StringBuilder();
String[] split = sb.toString().split(" ");
for (int i = 0; i < split.length; i++) {
int btd = binaryToDecimal(split[i].toString());
result.append(btd + " ");
}
return result.toString();
}
//二进制转成10进制
private static int binaryToDecimal(String sb) {
char[] ca1 = sb.toCharArray();
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (int i = 0; i < ca1.length; i++) {
map.put(i,Integer.parseInt(String.valueOf(ca1[i])));
}
int sum = 0;
for (int i = 0; i < ca1.length; i++) {
int value = (int)map.get(i);
if(i == 7){
sum += value;
}
if(i == 6){
sum += value *2;
}
if(i == 5){
sum += value *2*2;
}
if(i == 4){
sum += value *2*2*2;
}
if(i == 3){
sum += value *2*2*2*2;
}
if(i == 2){
sum += value *2*2*2*2*2;
}
if(i == 1){
sum += value *2*2*2*2*2*2;
}
if(i == 0){
sum += value *2*2*2*2*2*2*2;
}
}
return sum;
}
}