Este documento presenta un programa en Java que realiza operaciones con números binarios utilizando try, catch y finally para capturar errores. El programa pide al usuario que ingrese dos números binarios, valida que contengan solo ceros y unos, y realiza la resta binaria entre ellos mostrando el resultado.
1. EJERCICIO DE TRY Y CATCH
(FINALLY OPCIONAL)
para captura de errores
import java.util.Scanner;
public class Main {
static void rango(String numero)throws ExcepcionIntervalo{
for (int k=0;k<numero.length();k++){
if(numero.charAt(k)!='0' && numero.charAt(k)!='1'){
throw new ExcepcionIntervalo("Números no binarios o contiene caractéres alfabéticos");
}
}
}
public static void main(String[] args) {
boolean sw1;
String str1 = null,str2 = null;
Scanner teclado=new Scanner(System.in);
do {
sw1=true;
System.out.println("Escriba un numero binario ");
try {
str1=teclado.next();
rango(str1);
2. }
catch(ExcepcionIntervalo ex) {
String respuesta=ex.getMessage();
System.out.println("El error es "+respuesta);
sw1=false;
}
} while(sw1==false);
sw1=true;
do{
sw1=true;
System.out.println("Escriba otro numero binario ");
try {
str2=teclado.next();
rango(str2);
}
catch(ExcepcionIntervalo ex) {
String respuesta=ex.getMessage();
System.out.println("El error es "+respuesta);
sw1=false;
}
}while(sw1==false);
Resta s=new Resta();
int c=str1.length()-str2.length();
for(int b=0;b<c;b++)
str2='0'+str2;
3. System.out.println("El resultado de la Resta es " +
s.Sumar(str1,s.complementoaldos(s.complementoaluno(str2,str1.length()))));
}
}
public class ExcepcionIntervalo extends Exception {
public ExcepcionIntervalo(String msg) {
super(msg);
}
public ExcepcionIntervalo() {}
}
public class Resta {
public int aNumero(char digito){
int dig = 0;
switch(digito) {
case '0': dig=0;
break;
case '1': dig=1;
break;
}
return dig;
}
4. public char aLetra(int digito){
char dig=' ';
switch(digito) {
case 0: dig='0';
break;
case 1: dig='1';
break;
}
return dig;
}
public String Sumar(String num1, String num2){
int c=0,cantidad=0,i,j;//acarreo
String resultado=""; //solucion de la suma
//para igualar el tamaño de las cantidades colcocamos 0 a la derecha
cantidad=num1.length()-num2.length();
for(i=0;i<cantidad;i++)
num2='0'+num2;
char let=' ';
int sol,tamano;
tamano=num1.length();
for (j=tamano-1;j>=0;j--){
sol=aNumero(num1.charAt(j))+aNumero(num2.charAt(j))+c;
if(sol>=2){
c=1;
sol=sol-2;
5. }
else
c=0;
let=aLetra(sol);
resultado=let+resultado;
}
String solu=resultado;
return solu;
}
public String complementoaluno(String n,int tamano) {
String salida="";
for (int h=0;h<tamano;h++) {
if (n.charAt(h)=='0')
salida=salida +'1';
if (n.charAt(h)=='1')
salida=salida +'0';
}
return salida;
}
public String complementoaldos(String n) {
return Sumar(n,"1");
}
public String restar(String n1, String n2) {