/**
 * Convert a "number" in hexadecimal to a number in base 10
 *
 * @author  Prof. David Bernstein, James Madison University
 * @version 1.0
 */
public class HexConverter
{
    /**
     * The entry point
     *
     * @param args   The command-line arguments
     */
    public static void main(String[] args)
    {
       char               digit;
       int                i, length, number, power, value;
       String             hex;

       JMUConsole.open();

       // Read the hexadecimal number
       JMUConsole.printf("Enter the number in base 16: ");
       hex = JMUConsole.readLine();

       // Clean-up the hex number (Note that these methods
       // cannot be void since String objects are immutable.)
       hex = hex.trim();
       hex = hex.toUpperCase();
	

       // Initialization
       length = hex.length();
       number = 0;
       power  = 1;


       // Process each character (This can be done more efficiently)
       for (i=length-1; i>=0; i--) 
       {
          digit  = hex.charAt(i);
          value  = Character.digit(digit, 16);

          number = number + (value * power);

          power  = power * 16;
       }

       JMUConsole.printf("Base 10: %d\n", number);
       JMUConsole.close();
    }
}
