Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package javaapplication1;
- import java.util.Scanner;
- public class Ex_107 {
- public static void main(String[] args) {
- //Declaro objetos, variables y constantes
- Scanner sc = new Scanner(System.in);
- int numero;
- char base;
- String resultado="";
- boolean continuar=true;
- final int DOS=2,OCHO=8,DIECISEIS=16;
- //Pido el entero
- System.out.print("Introduce un numero entero: ");
- numero=sc.nextInt();
- //Hago un while
- //Se le muestran las opciones al usuario
- //El usuario ha de elegir una de las 3 bases mediante los chars 'A', 'B' y 'C'
- //Se entra al switch
- //Según la base elegida, se llama a la función con un valor u otro para la base
- //Si la opción elegida es incorrecta, se repite el while hasta elegir una correcta
- while(continuar){
- System.out.println("Que base quieres?"
- + "\nA) 2"
- + "\nB) 8"
- + "\nC) 16");
- base=sc.next().charAt(0);
- switch(base){
- case 'A' : resultado=conversor(numero,DOS);continuar=false; break;
- case 'B' : resultado=conversor(numero,OCHO);continuar=false; break;
- case 'C' : resultado=conversor(numero,DIECISEIS);continuar=false; break;
- default : System.out.println("Opcion incorrecta.");
- }
- }
- //Printar, hay que hacerlo hacia atrás
- for(int i=resultado.length()-1;i>=0;i--){
- System.out.print(resultado.charAt(i));
- }
- System.out.println("");
- }
- //La función, que recibe un entero y una de las tres bases
- //Tiene dos strings, uno vacio, que se va llenando, y es el que retorna
- //El otro string contiene los caracteres posibles
- //Si es base dos, contendrá los caracteres en las posicione 01
- //Si es base ocho, contendrá los caracteres en la posiciones 012345678
- //Lo mismo para base 16 (HEX), pero en lugar de 10, 11... tenemos A, B...
- public static String conversor(int numero, int base){
- String convertido="";
- String caracteres="0123456789ABCDEF";
- while(numero>0){
- convertido+=caracteres.charAt(numero%base);
- numero=numero/base;
- }
- return convertido;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement