Utilizzando la classe Math e l'algoritmo classico per la conversione da base 2 a base 10.
codice:
public class converti {
public static void main(String[] args) {
int i =1024;
int[] decimale1 = new int[16];
for(int k=0; k< 16; k++){
decimale1[15-k]=i%2;
i=i/2;
}
for(int k=0; k<16; k++){
System.out.println(decimale1[k]);
}
//Mi definisco due variabili che rappresentano i due numeri e un contatore
double num = 0;
double num2 = 0;
double cont = 0;
//Ciclo sulla prima meta' e applico l'algoritmo
for(int k=7; k>=0; k--){
num = num + (decimale1[k]*Math.pow(2, cont));
cont++;
}
//Azzero il contatore, ciclo sulla seconda meta' e applico l'algoritmo
cont = 0;
for(int k=15; k>=8; k--){
num2 = num2 + (decimale1[k]*Math.pow(2, cont));
cont++;
}
System.out.println("Primo numero: "+num);
System.out.println("Secondo numero: "+num2);
}
}
I numeri sono di tipo double, perche' il metodo Math.pow che serve per l'elevamento a potenza, vuole dei double in input. Se ti servono int, puoi castare i risultati.