public int solution(int n) {
ArrayList<Integer> integers = new ArrayList<>();
// 转换为二进制
for (int i = 0; i <= 31; i++) {
integers.add(n >>> i & 1);
}
// 去除多余的位数,并转换为String
String s = "";
for (int i = integers.size() - 1; i >= 0; i--) {
if (integers.get(i) != 0) {
s = integers.stream().limit(i + 1).map(integer -> Integer.toString(integer)).collect(joining(""));
break;
}
}
// 转换为十进制
int b = Integer.parseInt(s);
int decimal = 0;
int p = 0;
while (true) {
if (b == 0) {
break;
} else {
int temp = b % 10;
decimal += temp * Math.pow(2, p);
b = b / 10;
p++;
}
}
return decimal;
}