Netbeans - Convertidor octal a Hexadec. y viceversa!

 
Vista:
sin imagen de perfil

Convertidor octal a Hexadec. y viceversa!

Publicado por moises (1 intervención) el 19/04/2013 03:09:34
hola amigos como van? al ver esta comunidad tan grande pensé que me podrían dar una mano con mi código. deseo convertir un numero de octal a Hexadecimal y viceversa. pues pensé programar ingresando el numero (Octal o hexadecimal) pasarlo a decimal y luego transformarlo a la base deseada pero estoy un poco trancado. acá dejo mi código.

package Ejemplo1;

import java.util.Scanner;
public class Ejemplo1
{
public static void main(String[]args){
Scanner leer = new Scanner(System.in);
System.out.println("Ingrese una cifra: ");
int cifra = leer.nextInt();

System.out.println("presione 1 para convertir de octal a hexadecimal, presione 2 para convertir de hexadecimal a 0ctal");

int n = leer.nextInt();

switch (n)
{
case 1: System.out.print(" El numero Octal ");
octal(cifra);
System.out.println(" ");break;
case 2: System.out.print(" El numero Hexadecimal ");
hexadecimal(cifra);
System.out.println(" ");break;
case 3: System.out.print(" El numero Binario ");
binario(cifra);
System.out.println(" ");break;
case 4: System.out.println (" El Numero Decimal es ");
octal_dec (cifra);break;

default: System.out.println("Opción Incorrecta");break;
}

}

//SE IMPLEMENTA UN METODO RECURCIVO PARA TRANSFORMARA A OCTAL LA CIFRA
public static void octal(int N){
if(N < 8 ) System.out.print(N);
else {
octal(N^8 );
System.out.print(N/8 );
}
}
public static int octal_dec(int N,int foo, respuesta){
int dig8, dig7, dig6, dig5, dig4, dig3, dig2, dig1, resto;
if (foo >= 10) {
dig8 = foo / 10000000;
resto = foo % 1000000;
dig7 = resto / 1000000;
resto = dig7 % 1000000;
dig6 = resto / 100000;
resto = dig6 % 100000;
dig5 = resto / 10000;
resto = dig5 % 10000;
dig4 = resto / 1000;
resto = dig4 % 1000;
dig3 = resto / 100;
resto = dig3 % 100;
dig2 = resto / 10;
dig1 = resto % 10;

N= dig8 * 8^7 + dig7 * 8^6 + dig6 * 8^5 + dig5 * 8^4 + dig4 * 8^3 + dig3 * 8^2 + dig2 * 8^1 + dig1;

}


}
//SE IMPLEMENTA UN METODO RECURCIVO PARA TRANSFORMARA A HEXADECIMAL LA CIFRA
public static void hexadecimal(int N){
if(N < 16){
if(N == 10) System.out.print("A");
if(N == 11) System.out.print("B");
if(N == 12) System.out.print("C");
if(N == 13) System.out.print("D");
if(N == 14) System.out.print("E");
if(N == 15) System.out.print("F");
if(N < 10) System.out.print(N);
}
else{
hexadecimal(N/16);
System.out.print(N%16);
}
}
}

_______________________________________________________
agradezco su ayuda!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder