2017-10-14 1 views
0

Ich muss einen Hexadezimal-Dezimal-Konverter in Java machen, ohne integrierte Konvertierungsmethoden zu verwenden. Die Hex-Zeichenfolge wird als Argument eingegeben, und eine andere Methode zeigt den konvertierten Dezimalwert an. Ich bin mir ziemlich sicher, dass ich einen Weg kenne, dies zu tun, aber es scheint sehr langwierig und ineffizient zu sein.Verwenden eines Arrays, um einen Hexadezimal-Dezimal-Konverter in Java zu machen?

Ich möchte wirklich wissen, ob ich dies mithilfe eines Arrays zum Speichern der Hex-String-Eingabe tun kann. Da ein Array bei 0 beginnt, gibt es eine Möglichkeit, jedes Hex-Zeichen als separaten Wert in einem Array zu speichern? Wenn es möglich ist, könnte ich dann eine Schleife für die Länge des Arrays laufen lassen, wo jedes Zeichen mit 16 multipliziert und dann auf die Stärke seines Array-Indexes erhöht wird?

Sorry, wenn das eine dumme Frage ist. Ich bin neu in der Programmierung und möchte versuchen, das Problem auf diese Weise zu lösen. Danke im Voraus.

Für den Fall, dass dies nicht möglich ist, habe ich versucht, meine andere Idee Arbeit zu machen, aber ich 0 immer für meine Ausgabe erhalten :(

package com.company; 

public class Main { 

    public static void main(String[] hexInput) { 
     int finalConversion = convertHexToDec(hexInput[0]); 
     System.out.println(finalConversion); 
    } 


    public static int convertHexToDec(String hexInput) { 
     String max = "0xFFFFFFFF"; 
     int hexValue = 0; 
     int tracker = 0; 
     int total = 0; 

     while (tracker < max.length()) { 
      tracker += 1; 
      char current = hexInput.charAt(hexValue); 
      int numCurrent = max.indexOf(current); 
      total = 16 * total + numCurrent; 
     } 
     return total; 
    } 
} 
+0

'I Programmierung wirklich neu bin und Ich möchte versuchen, das Problem auf diese Weise zu lösen. Wo ist Ihr bewährter Teilcode ???? –

+0

Suchen Sie nach der String-Methode getBytes()? – Turo

Antwort

0
static long hexToDec(String hex){ 
    long dec = 0; 
    for(int i = 0 ; i < hex.length() ; i++) 
     dec += hextToDec(hex.charAt(hex.length() - i - 1)) * Math.pow(16 , i);// dec += 10; is the same as dec = dec + 10; 
    return dec; 
} 

static long hextToDec(char c){ 
    switch (c){ 
     case '1': 
      return 1; 
     case '2': 
      return 2; 
     case '3': 
      return 3; 
     case '4': 
      return 4; 
     case '5': 
      return 5; 
     case '6': 
      return 6; 
     case '7': 
      return 7; 
     case '8': 
      return 8; 
     case '9': 
      return 9; 
     case 'a': 
     case 'A': 
      return 10; 
     case 'b': 
     case 'B': 
      return 11; 
     case 'c': 
     case 'C': 
      return 12; 
     case 'd': 
     case 'D': 
      return 13; 
     case 'e': 
     case 'E': 
      return 14; 
     default: 
      return 15; 


    } 
} 
Verwandte Themen