Advertisement
Vanya_Shestakov

16 -> 10

Oct 29th, 2020
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.72 KB | None | 0 0
  1. package com.company;
  2. import java.util.Scanner;
  3.  
  4. public class Main {
  5.  
  6.     public static String inputLine() {
  7.         Scanner scan = new Scanner(System.in);
  8.         boolean isIncorrect;
  9.         String line;
  10.         System.out.println("Enter the number in hexadecimal notation");
  11.         do {
  12.             isIncorrect = false;
  13.             line = scan.nextLine();
  14.             isIncorrect = checkLine(line);
  15.         }while (isIncorrect);
  16.         return line;
  17.     }
  18.  
  19.     public static boolean checkLine (String line) {
  20.         boolean flag = false;
  21.         if (line.length() == 0){
  22.             System.out.println("You entered an empty line!\nRepeat enter");
  23.             flag = true;
  24.         }
  25.         return flag;
  26.     }
  27.  
  28.     public static void changeHexadecimalNumber(String hexadecimalNumber, int[] sourceNumber) {
  29.         try {
  30.             for (int i = 0; i < hexadecimalNumber.length(); i++) {
  31.                 if (hexadecimalNumber.charAt(i) == 'A'){
  32.                     sourceNumber[i] = 10;
  33.                 } else if (hexadecimalNumber.charAt(i) == 'B'){
  34.                     sourceNumber[i] = 11;
  35.                 } else if (hexadecimalNumber.charAt(i) == 'C'){
  36.                     sourceNumber[i] = 12;
  37.                 } else  if (hexadecimalNumber.charAt(i) == 'D'){
  38.                     sourceNumber[i] = 13;
  39.                 } else if (hexadecimalNumber.charAt(i) == 'E'){
  40.                     sourceNumber[i] = 14;
  41.                 } else if (hexadecimalNumber.charAt(i) == 'F'){
  42.                     sourceNumber[i] = 15;
  43.                 } else {
  44.                     sourceNumber[i] = Integer.parseInt(String.valueOf(hexadecimalNumber.charAt(i)));
  45.                 }
  46.             }
  47.         }catch (NumberFormatException e){
  48.             hexadecimalNumber = inputLine();
  49.             changeHexadecimalNumber(hexadecimalNumber, sourceNumber);
  50.         }
  51.     }
  52.  
  53.     public static int convertToDecimalNumberSystem(int[] sourceNumber){
  54.         int decimalNumber = 0;
  55.         for (int i = 0; i < sourceNumber.length; i++) {
  56.             decimalNumber += sourceNumber[i] * Math.pow(16, sourceNumber.length - (i + 1));
  57.         }
  58.         return decimalNumber;
  59.     }
  60.  
  61.     public static void outputResult(int decimalNumber) {
  62.         System.out.println("Your decimal number: " + decimalNumber);
  63.     }
  64.  
  65.     public static void main(String[] args) {
  66.         System.out.println("This program converts a number from hexadecimal to decimal");
  67.         String hexadecimalNumber = inputLine();
  68.         int[] sourceNumber = new int[hexadecimalNumber.length()];
  69.         changeHexadecimalNumber(hexadecimalNumber, sourceNumber);
  70.         int decimalNumber = convertToDecimalNumberSystem(sourceNumber);
  71.         outputResult(decimalNumber);
  72.     }
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement