Как перевести бинарный код в десятичный?
Задача:
Дано натуральное число m. Найти такое натуральное n, что двоичная запись n получается из двоичной записи t изменением порядка цифр на обратный (t задано в десятичной системе, и n надо также получить в десятичной системе, например, для t=6 получается n=3).
Суть вот в чем, не знаю, как вернуть полученный обратный код числа в десятичный вид. Пример того, что я уже сделал:
Решено, готовый код, пусть и не самый лучший но все же:
import java.io.*;
public class Binary {
public static void main(String args[])throws IOException{
System.out.println("Введите число");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
myRev(s);
}
public static void myRev (String s){
try {
int k = Integer.parseInt(s);
if(k<0) {System.out.println("Число "+s+" не натуральное"); System.exit(1);}
}
catch(Exception e) {
System.out.println("Число "+s+" не натуральное"); System.exit(1);}
System.out.print("Число:" + s + "\n");
int f = Integer.parseInt(s);
StringBuilder sb = new StringBuilder();
do {
sb.append(f % 2);
f = f / 2;
} while (f != 0);
String S = new String (sb.reverse());
int result = 0;
for (int i=0; i<S.length (); i++){
result += Math.pow(2, i) * (S.charAt(i) == '1'?1:0);
}
System.out.println("В 2-ном виде: " + sb + "\n");
System.out.println("Обратный код: " + sb.reverse());
System.out.println("Ответ : " + result);
}
}
Источник: Stack Overflow на русском