import javax.swing.JOptionPane; public class ConversioneComplementoADue { public static final int LUNGH=32; public static String convertiBinario(int n) { if(n==0) return "0"; else { String s=""; while(n>0) { int cifraBin = n%2; s = cifraBin + s; n = n/2; } return s; } } /* versione che usa un oggetto StringBuffer * La classe StringBuffer permette di rappresentare una stringa * che puo' essere modificata. Infatti, a differenza della classe String * contiene metodi del tipo insert(...) e setStringAt(...) */ public static String convertiComplADueBis(int n) { StringBuffer numero = new StringBuffer(convertiBinario(Math.abs(n))); for(int i=numero.length(); i=0) { if(numero.charAt(i)=='0') numeroInComplemento = "1" + numeroInComplemento; else numeroInComplemento = "0" + numeroInComplemento; i--; } return numeroInComplemento; } else return numero; } public static void main(String[] x) { int num=Integer.parseInt(JOptionPane.showInputDialog("Digita il numero da convertire\n(positivo o negativo)")); String binario = convertiComplADue(num); JOptionPane.showMessageDialog(null, num+" in binario e' "+binario); System.exit(0); } }