/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.Scanner ;
/**
*
* @author Thomas
*/
class CalculadoraBinaria {
static int binarioaDecimal( int binario) {
int D;
int factor = 1 ;
int decimal = 0 ;
while ( binario > 0 ) {
D = binario % 10 ;
binario = binario / 10 ;
decimal = decimal + factor * D;
factor = factor * 2 ;
}
return decimal;
}
static int decimalaBinario( int decimal) {
int D;
int factor = 1 ;
int binario = 0 ;
while ( decimal > 0 ) {
D = decimal % 2 ;
decimal = decimal / 2 ;
binario = binario + factor * D;
factor = factor * 10 ;
}
return binario;
}
public static void main
( String [ ] args
) { // TODO code application logic here
int opcion, bin1, bin2, num1, num2, resul, resulbin;
boolean salir = true ;
Scanner scan
= new Scanner
( System .
in ) ; while ( salir == true ) {
System .
out .
println ( "Que desea hacer : \n 1)Sumar \n 2)Restar \n 3)Multiplicar \n 4)Dividir \n 5)Salir " ) ; opcion = scan.nextInt ( ) ;
switch ( opcion) {
case 1 :
System .
out .
println ( "Ingrese el primer binario a sumar" ) ; bin1 = scan.nextInt ( ) ;
num1 = CalculadoraBinaria.binarioaDecimal ( bin1) ;
System .
out .
println ( "Ingrese el segundo binario a sumar" ) ; bin2 = scan.nextInt ( ) ;
num2 = CalculadoraBinaria.binarioaDecimal ( bin2) ;
resul = num1 + num2;
resulbin = CalculadoraBinaria.decimalaBinario ( resul) ;
System .
out .
println ( "Resultado : " + resulbin
+ "(" + resul
+ ")" ) ; break ;
case 2 :
System .
out .
println ( "Ingrese el primer binario a restar" ) ; bin1 = scan.nextInt ( ) ;
num1 = CalculadoraBinaria.binarioaDecimal ( bin1) ;
System .
out .
println ( "Ingrese el segundo binario a restar" ) ; bin2 = scan.nextInt ( ) ;
num2 = CalculadoraBinaria.binarioaDecimal ( bin2) ;
resul = num1 - num2;
resulbin = CalculadoraBinaria.decimalaBinario ( resul) ;
System .
out .
println ( "Resultado : " + resulbin
+ "(" + resul
+ ")" ) ; break ;
case 3 :
System .
out .
println ( "Ingrese el primer binario a multiplicar" ) ; bin1 = scan.nextInt ( ) ;
num1 = CalculadoraBinaria.binarioaDecimal ( bin1) ;
System .
out .
println ( "Ingrese el segundo binario a multiplicar" ) ; bin2 = scan.nextInt ( ) ;
num2 = CalculadoraBinaria.binarioaDecimal ( bin2) ;
resul = num1 * num2;
resulbin = CalculadoraBinaria.decimalaBinario ( resul) ;
System .
out .
println ( "Resultado : " + resulbin
+ "(" + resul
+ ")" ) ; break ;
case 4 :
System .
out .
println ( "Ingrese el primer binario a dividir" ) ; bin1 = scan.nextInt ( ) ;
num1 = CalculadoraBinaria.binarioaDecimal ( bin1) ;
System .
out .
println ( "Ingrese el segundo binario a dividir" ) ; bin2 = scan.nextInt ( ) ;
num2 = CalculadoraBinaria.binarioaDecimal ( bin2) ;
resul = num1 / num2;
resulbin = CalculadoraBinaria.decimalaBinario ( resul) ;
System .
out .
println ( "Resultado : " + resulbin
+ "(" + resul
+ ")" ) ; break ;
case 5 :
salir = false ;
break ;
}
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKCi8qKgogKgogKiBAYXV0aG9yIFRob21hcwogKi8KY2xhc3MgQ2FsY3VsYWRvcmFCaW5hcmlhIHsKCiAgICBzdGF0aWMgaW50IGJpbmFyaW9hRGVjaW1hbChpbnQgYmluYXJpbykgewogICAgICAgIGludCBEOwogICAgICAgIGludCBmYWN0b3IgPSAxOwogICAgICAgIGludCBkZWNpbWFsID0gMDsKICAgICAgICB3aGlsZSAoYmluYXJpbyA+IDApIHsKICAgICAgICAgICAgRCA9IGJpbmFyaW8gJSAxMDsKICAgICAgICAgICAgYmluYXJpbyA9IGJpbmFyaW8gLyAxMDsKICAgICAgICAgICAgZGVjaW1hbCA9IGRlY2ltYWwgKyBmYWN0b3IgKiBEOwogICAgICAgICAgICBmYWN0b3IgPSBmYWN0b3IgKiAyOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZGVjaW1hbDsKICAgIH0KCiAgICBzdGF0aWMgaW50IGRlY2ltYWxhQmluYXJpbyhpbnQgZGVjaW1hbCkgewogICAgICAgIGludCBEOwogICAgICAgIGludCBmYWN0b3IgPSAxOwogICAgICAgIGludCBiaW5hcmlvID0gMDsKICAgICAgICB3aGlsZSAoZGVjaW1hbCA+IDApIHsKICAgICAgICAgICAgRCA9IGRlY2ltYWwgJSAyOwogICAgICAgICAgICBkZWNpbWFsID0gZGVjaW1hbCAvIDI7CiAgICAgICAgICAgIGJpbmFyaW8gPSBiaW5hcmlvICsgZmFjdG9yICogRDsKICAgICAgICAgICAgZmFjdG9yID0gZmFjdG9yICogMTA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBiaW5hcmlvOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICAvLyBUT0RPIGNvZGUgYXBwbGljYXRpb24gbG9naWMgaGVyZQogICAgICAgIGludCBvcGNpb24sIGJpbjEsIGJpbjIsIG51bTEsIG51bTIsIHJlc3VsLCByZXN1bGJpbjsKICAgICAgICBib29sZWFuIHNhbGlyID0gdHJ1ZTsKICAgICAgICBTY2FubmVyIHNjYW4gPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIHdoaWxlIChzYWxpciA9PSB0cnVlKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUXVlIGRlc2VhIGhhY2VyIDogXG4gMSlTdW1hciBcbiAyKVJlc3RhciBcbiAzKU11bHRpcGxpY2FyIFxuIDQpRGl2aWRpciBcbiA1KVNhbGlyICIpOwogICAgICAgICAgICBvcGNpb24gPSBzY2FuLm5leHRJbnQoKTsKICAgICAgICAgICAgc3dpdGNoIChvcGNpb24pIHsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkluZ3Jlc2UgZWwgcHJpbWVyIGJpbmFyaW8gYSBzdW1hciIpOwogICAgICAgICAgICAgICAgICAgIGJpbjEgPSBzY2FuLm5leHRJbnQoKTsKICAgICAgICAgICAgICAgICAgICBudW0xID0gQ2FsY3VsYWRvcmFCaW5hcmlhLmJpbmFyaW9hRGVjaW1hbChiaW4xKTsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkluZ3Jlc2UgZWwgc2VndW5kbyBiaW5hcmlvIGEgc3VtYXIiKTsKICAgICAgICAgICAgICAgICAgICBiaW4yID0gc2Nhbi5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICAgICAgbnVtMiA9IENhbGN1bGFkb3JhQmluYXJpYS5iaW5hcmlvYURlY2ltYWwoYmluMik7CiAgICAgICAgICAgICAgICAgICAgcmVzdWwgPSBudW0xICsgbnVtMjsKICAgICAgICAgICAgICAgICAgICByZXN1bGJpbiA9IENhbGN1bGFkb3JhQmluYXJpYS5kZWNpbWFsYUJpbmFyaW8ocmVzdWwpOwogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0YWRvIDogIisgcmVzdWxiaW4gKyAiKCIgKyByZXN1bCArICIpIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbmdyZXNlIGVsIHByaW1lciBiaW5hcmlvIGEgcmVzdGFyIik7CiAgICAgICAgICAgICAgICAgICAgYmluMSA9IHNjYW4ubmV4dEludCgpOwogICAgICAgICAgICAgICAgICAgIG51bTEgPSBDYWxjdWxhZG9yYUJpbmFyaWEuYmluYXJpb2FEZWNpbWFsKGJpbjEpOwogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW5ncmVzZSBlbCBzZWd1bmRvIGJpbmFyaW8gYSByZXN0YXIiKTsKICAgICAgICAgICAgICAgICAgICBiaW4yID0gc2Nhbi5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICAgICAgbnVtMiA9IENhbGN1bGFkb3JhQmluYXJpYS5iaW5hcmlvYURlY2ltYWwoYmluMik7CiAgICAgICAgICAgICAgICAgICAgcmVzdWwgPSBudW0xIC0gbnVtMjsKICAgICAgICAgICAgICAgICAgICByZXN1bGJpbiA9IENhbGN1bGFkb3JhQmluYXJpYS5kZWNpbWFsYUJpbmFyaW8ocmVzdWwpOwogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUmVzdWx0YWRvIDogIisgcmVzdWxiaW4gKyAiKCIgKyByZXN1bCArICIpIik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbmdyZXNlIGVsIHByaW1lciBiaW5hcmlvIGEgbXVsdGlwbGljYXIiKTsKICAgICAgICAgICAgICAgICAgICBiaW4xID0gc2Nhbi5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICAgICAgbnVtMSA9IENhbGN1bGFkb3JhQmluYXJpYS5iaW5hcmlvYURlY2ltYWwoYmluMSk7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbmdyZXNlIGVsIHNlZ3VuZG8gYmluYXJpbyBhIG11bHRpcGxpY2FyIik7CiAgICAgICAgICAgICAgICAgICAgYmluMiA9IHNjYW4ubmV4dEludCgpOwogICAgICAgICAgICAgICAgICAgIG51bTIgPSBDYWxjdWxhZG9yYUJpbmFyaWEuYmluYXJpb2FEZWNpbWFsKGJpbjIpOwogICAgICAgICAgICAgICAgICAgIHJlc3VsID0gbnVtMSAqIG51bTI7CiAgICAgICAgICAgICAgICAgICAgcmVzdWxiaW4gPSBDYWxjdWxhZG9yYUJpbmFyaWEuZGVjaW1hbGFCaW5hcmlvKHJlc3VsKTsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlc3VsdGFkbyA6ICIrIHJlc3VsYmluICsgIigiICsgcmVzdWwgKyAiKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA0OiAKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkluZ3Jlc2UgZWwgcHJpbWVyIGJpbmFyaW8gYSBkaXZpZGlyIik7CiAgICAgICAgICAgICAgICAgICAgYmluMSA9IHNjYW4ubmV4dEludCgpOwogICAgICAgICAgICAgICAgICAgIG51bTEgPSBDYWxjdWxhZG9yYUJpbmFyaWEuYmluYXJpb2FEZWNpbWFsKGJpbjEpOwogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSW5ncmVzZSBlbCBzZWd1bmRvIGJpbmFyaW8gYSBkaXZpZGlyIik7CiAgICAgICAgICAgICAgICAgICAgYmluMiA9IHNjYW4ubmV4dEludCgpOwogICAgICAgICAgICAgICAgICAgIG51bTIgPSBDYWxjdWxhZG9yYUJpbmFyaWEuYmluYXJpb2FEZWNpbWFsKGJpbjIpOwogICAgICAgICAgICAgICAgICAgIHJlc3VsID0gbnVtMSAvIG51bTI7CiAgICAgICAgICAgICAgICAgICAgcmVzdWxiaW4gPSBDYWxjdWxhZG9yYUJpbmFyaWEuZGVjaW1hbGFCaW5hcmlvKHJlc3VsKTsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlJlc3VsdGFkbyA6ICIrIHJlc3VsYmluICsgIigiICsgcmVzdWwgKyAiKSIpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA1IDoKICAgICAgICAgICAgICAgICAgICBzYWxpciA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cg==