Advertisement
Guest User

Untitled

a guest
Feb 12th, 2012
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.41 KB | None | 0 0
  1. package javaapplication1;
  2.  
  3. import java.util.Scanner;
  4.  
  5.  
  6. public class Ex_107 {
  7.     public static void main(String[] args) {
  8.        
  9.         //Declaro objetos, variables y constantes
  10.         Scanner sc = new Scanner(System.in);
  11.         int numero;
  12.         char base;
  13.         String resultado="";
  14.         boolean continuar=true;
  15.         final int DOS=2,OCHO=8,DIECISEIS=16;
  16.        
  17.         //Pido el entero
  18.         System.out.print("Introduce un numero entero: ");
  19.         numero=sc.nextInt();
  20.        
  21.         //Hago un while
  22.         //Se le muestran las opciones al usuario
  23.         //El usuario ha de elegir una de las 3 bases mediante los chars 'A', 'B' y 'C'
  24.         //Se entra al switch
  25.         //Según la base elegida, se llama a la función con un valor u otro para la base
  26.         //Si la opción elegida es incorrecta, se repite el while hasta elegir una correcta
  27.         while(continuar){
  28.             System.out.println("Que base quieres?"
  29.                     + "\nA) 2"
  30.                     + "\nB) 8"
  31.                     + "\nC) 16");
  32.             base=sc.next().charAt(0);
  33.             switch(base){
  34.                 case 'A' : resultado=conversor(numero,DOS);continuar=false; break;
  35.                 case 'B' : resultado=conversor(numero,OCHO);continuar=false; break;
  36.                 case 'C' : resultado=conversor(numero,DIECISEIS);continuar=false; break;
  37.                 default : System.out.println("Opcion incorrecta.");
  38.             }
  39.        
  40.         }
  41.        
  42.        
  43.         //Printar, hay que hacerlo hacia atrás
  44.         for(int i=resultado.length()-1;i>=0;i--){
  45.             System.out.print(resultado.charAt(i));
  46.         }
  47.         System.out.println("");
  48.        
  49.     }
  50.    
  51.     //La función, que recibe un entero y una de las tres bases
  52.     //Tiene dos strings, uno vacio, que se va llenando, y es el que retorna
  53.     //El otro string contiene los caracteres posibles
  54.     //Si es base dos, contendrá los caracteres en las posicione 01
  55.     //Si es base ocho, contendrá los caracteres en la posiciones 012345678
  56.     //Lo mismo para base 16 (HEX), pero en lugar de 10, 11... tenemos A, B...
  57.     public static String conversor(int numero, int base){
  58.         String convertido="";
  59.         String caracteres="0123456789ABCDEF";
  60.         while(numero>0){
  61.             convertido+=caracteres.charAt(numero%base);
  62.             numero=numero/base;
  63.         }
  64.         return convertido;
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement