Buenas, soy estudiante de ing. informática y estoy creando un programa que reciba un numero por teclado, y lo transforme a binario y posteriormente a complento a2.
El caso es que, tengo que hacer 2 metodos y devolverlo como String. Hago el paso del integer a binario a traves de un array, pero no se como hacer para que en el main me printee el string
. Por favor cualquier ayuda será bien recibida, os dejo a continuación el código fuente. Saludos y gracias!
import java.util.*;
public class integerNumber{
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
System.out.println("Tell me, which number do you want to convert?");
int integerNumber=sc.nextInt();
System.out.println(intToComp2(integerNumber)); //NO ME PRINTEA EL STRING!
}
//METODO QUE PASA DE INTEGER A Comp.A2
public static String intToComp2(int integerNumber){
int i=0;
int[]array;
int j=integerNumber;
int r;
int m=0;
String returneado;
//este bucle calcula la longitud del array
do{
i++;
array=new int[i];
}while((Math.pow(2,i))<=integerNumber);
System.out.println("So I will use " + array.length + " bits");
//este bucle mete en el array el valor del numero en binario
do{
r=j%2;
j=j/2;
array[m]=r;
if(j/2==1){
array[i-1]=1;
}
m++;
}while(j>1);
//esto printea el binario
for(int h=m;h>=0;h--){
System.out.print(array[h]);
}
//este bucle lo pasa a comp.A2
for(int b=0;b<array.length;b++){
if(array[b]==1){
b=b+1;
while(b<array.length){
if(array[b]==1){
array[b]=0;
}else{
array[b]=1;
}
b++;
}
}break;
}
System.out.println();
returneado = array.toString(); //Esto lo pongo para poder convertir el array en string
return returneado;
}
}