qerubin |
|
| Esercizio 1:Dato un numero binario, convertilo in decimale. CODICE import java.io.*; import java.lang.Math; public class bindecstring{ public static void main (String args []) throws IOException{ InputStreamReader In=new InputStreamReader (System.in); BufferedReader Tastiera=new BufferedReader (In); System.out.println("Inserisci il numero binario da convertire in decimale: "); String bin=Tastiera.readLine(); String temp=""; int j=0, n=bin.length(),bte; double dec=0; for (int i=n-1; i>=0; i--) { bte=Integer.parseInt(temp+bin.charAt(i)); switch(bte) { case 0: { dec=dec; break; } case 1: { dec=dec+Math.pow(2,j); break; } default: System.out.println("numero inserito non valido"); } j++; } System.out.println("Il numero binario "+bin+" in decimale è "+dec); } } Esercizio 2:Dati due numeri binari, convertirli in decimale e sommarli, quindi convertire la somma in binario. CODICE import java.io.*; import java.lang.Math; public class bindecsomma{ public static void main (String args []) throws IOException{ InputStreamReader In=new InputStreamReader (System.in); BufferedReader Tastiera=new BufferedReader (In); System.out.println("Inserisci i numeri binari da convertire in decimale e sommare: "); String bin=Tastiera.readLine(),bin1=Tastiera.readLine(); String temp=""; int j=0, n=bin.length(), n1=bin1.length(),bte; double dec=0,dec1=0; for (int i=n-1; i>=0; i--) { bte=Integer.parseInt(temp+bin.charAt(i)); switch(bte) { case 0: { dec=dec; break; } case 1: { dec=dec+Math.pow(2,j); break; } default: System.out.println("numero inserito non valido"); } j++; } j=0; for (int i=n1-1; i>=0; i--) { bte=Integer.parseInt(temp+bin1.charAt(i)); switch(bte) { case 0: { dec1=dec1; break; } case 1: { dec1=dec1+Math.pow(2,j); break; } default: System.out.println("numero inserito non valido"); } j++; } double decsom=dec+dec1,pot=decsom-1, sot; int esp=0; String binsom=""; for(int i=0; pot<decsom; i++) { pot=Math.pow(2,i); esp=i-1; } for(int i=esp; i>=0; i--) { sot=decsom-Math.pow(2,1); if(sot!=0) binsom=binsom+1; else binsom=binsom+0; } System.out.println("La somma dei numeri "+bin+" e "+bin1+" è: "+binsom); } } Esercizio 3:Date due stringhe di ugual lunghezza contenenti numeri binari, sommare i due numeri senza effettuare conversioni. CODICE import java.io.*; public class sommastringbin{ public static void main (String args []) throws IOException{ InputStreamReader In=new InputStreamReader (System.in); BufferedReader Tastiera=new BufferedReader (In); System.out.println("Inserisci i due numeri binari di uguale lunghezza da sommare: "); String bin=Tastiera.readLine(),bin1=Tastiera.readLine(),som=""; int rip=0,err=0; char a1,a2; if (bin.length()==bin1.length()) { for(int i=(bin.length()-1); i>=0; i--) { a1=bin.charAt(i); a2=bin1.charAt(i); if(rip==0) switch(a1) { case '0': { if(a2=='1') { som='1'+som; rip=0; } else if (a2=='0') { som='0'+som; rip=0; } else err++; break; } case '1': { if(a2=='1') { som='0'+som; rip=1; } else if (a2=='0') { som='1'+som; rip=0; } else err++; break; } default: err++; } else { switch(a1) { case '0': { if(a2=='1') { som='0'+som; rip=1; } else if (a2=='0') { som='1'+som; rip=0; } else err++; break; } case '1': { if(a2=='1') { som='1'+som; rip=1; } else if (a2=='0') { som='0'+som; rip=1; } else err++; break; } default: err++; } } } if (rip==1) som='1'+som; if(err==0) System.out.println("La somma tra "+bin+" e "+bin1+" è: "+som); else System.out.println("Sono stati inseriti caratteri non validi."); } else System.out.println("I numeri inseriti hanno lunghezza diversa."); } }
Se avete domande sul loro funzionamento o avete trovato errori chiedete/indicate qui di seguito... grazie
|
| |