Sei sulla pagina 1di 2

Conversione BaseN-Base10

package basen.base10;

import java.util.Scanner;

class BaseNBase10
{

// Metodo per convertire un carattere char ad un numero


public static int CharToInt(char N)
{
int number_return = 0;
String N_str = String.valueOf(N);
switch (N_str)
{
case "A":
number_return = 10;
break;
case "B":
number_return = 11;
break;
case "C":
number_return = 12;
break;
case "D":
number_return = 13;
break;
case "E":
number_return = 14;
break;
case "F":
number_return = 15;
break;
}
return number_return;
}

public static void main(String[] args)


{
// Inizializzazione delle variabili e dello scanner
Scanner tastiera = new Scanner(System.in);
int base = 0;
int esponente = 0;
int numero = 0;
int final_number = 0;
int single_number = 0;
char[] number_charvett;
String numeroN = "";
// Spieghiamo cosa fa il programma e richiediamo i dati in ingresso all'utente
System.out.println("Inserisci una base N");
base = tastiera.nextInt();
System.out.println("Inserisci un numero da convertire in base" + base + ":");
numeroN = tastiera.next();
tastiera.close();

// Conversione dell numero in un vettore di char


number_charvett = numeroN.toCharArray();

// Aquisizione dell esponente che corrisponde alla posizione del singolo numero
esponente = number_charvett.length-1;

// Conversione da base N a base 16


for (int i=0; i < number_charvett.length; i++ )
{

if (Character.isDigit(number_charvett[i]) == true)
{
single_number = Character.getNumericValue(number_charvett[i]);
}
else
{
single_number = CharToInt(number_charvett[i]);
}

numero = (int) Math.pow(base, esponente);

numero = numero * single_number;

final_number = final_number + numero;

esponente--;

}// Fine For i

// Stampa del risultato


System.out.println("Il numero convertito da base ["+base+"] in base 10
corrisponde a ["+final_number+"]");

}// Fine Main

}// Fine Class

Potrebbero piacerti anche