Professional Documents
Culture Documents
Number Base Convert or
Number Base Convert or
/**
*
* @author Andrei
*/
import java.util.Scanner;
public class NumberBaseConv {
public static void main(String[] args) {
// inits
Scanner sc = new Scanner(System.in);
String origNum;
String newNum;
int origBase;
int newBase;
System.out.print("Introduceti numarul pe care doriti sa-l convertiti: ")
;
origNum = sc.nextLine();
System.out.print("Introduceti baza numarului pe care doriti sa-l convert
iti: ");
origBase = sc.nextInt();
ValidateBase(origBase);
ValidateNumInBase(origNum, origBase);
System.out.print("Introduceti noua baza in care doriti sa convertiti num
arul: ");
newBase = sc.nextInt();
sc.close();
newNum = NumConvertBase(origNum, origBase, newBase);
System.out.println("Noul numar este: " + newNum);
}
private static void ValidateBase(int base) {
if (base < 2 || base > 36) {
System.out.println("Eroare: Baza trebuie sa fie >= 2 si <= 36");
System.exit(1);
}
}
private static void ValidateNumInBase(String num, int base) {
// check that digits of number range from 0-(base-1)
char chDigit;
for (int d = 0; d < num.length(); d++) {
chDigit = num.toUpperCase().charAt(d);
if (Character.isDigit(chDigit)
&& (chDigit - '0') >= base) {
System.out.println("Nu exista numarul " + chDigit
+ " in baza " + base);
System.exit(1);
} else if (Character.isLetter(chDigit)