Dezimal zu Hexadezimal rekursive Funktion

U

updater

Mitglied
Guten Abend/Morgen Leute,

Ich habe hier eine rekursive Variante , um eine Zahl von Dezimal in Hexadezimal umzuwandeln.
Allerdings möchte ich eine Funktion (mit Rückgabewert) haben und keine Prozedur(ohne Rückgabewert). Ich bin noch ein Neuling im Programmieren und ich weiss nicht wie ich das am besten umschreiben kann. Die Funktion soll diese Form haben:

public static String convertToHex( int zahl)

Einschränkung: keine Schleifen

Hier der bisherige Javacode:

Java:
public class test3 {

	public static void main(String[] args) { 
		print("Zahl eingeben: ");
		int zahl=readInt();
	    convertToHex(zahl); 
	   } 
	    
	   public static void convertToHex(int zahl){ 
	      
	      if (zahl > 15) convertToHex(zahl/16);

	      int Rest=zahl%16; 
	        
	      if (Rest == 0){
	    	  print("0");}
	      if (Rest == 1){
	    	  print("1");}
	      if (Rest == 2){
	    	  print("2");}
	      if (Rest == 3){
	    	  print("3");}
	      if (Rest == 4){
	    	  print("4");}
	      if (Rest == 5){
	    	  print("5");}
	      if (Rest == 6){
	    	  print("6");}
	      if (Rest == 7){
	    	  print("7");}
	      if (Rest == 8){
	    	  print("8");}
	      if (Rest == 9){
	    	  print("9");}
	      if (Rest == 10){
	    	  print("A");}
	      if (Rest == 11){
	    	  print("B");}
	      if (Rest == 12){
	    	  print("C");}
	      if (Rest == 13){
	    	  print("D");}
	      if (Rest == 14){
	    	  print("E");}
	      if (Rest == 15){
	    	  print("F");}
	      
	   } 
}

Habt Ihr irgendwelche Ideen, Tipps oder sogar eine Lösung? Danke schonmal im Vorraus

Gruß
updater
 
A

andiv

Bekanntes Mitglied
Java:
public static String convertToHex(int zahl) {
    return Integer.toHexString(zahl).toUpperCase();
}
 
X

XHelp

Top Contributor
Wenn es schon eine Einschränkung gibt, dass man keine Schleifen benutzt, dann wird man die toHexString-Methode auch nicht benutzen dürfen...
Die Idee ist schon die richtige, nur du musst jetzt mit Rückgabewerten arbeiten:
Java:
public static String convertToHex(int zahl) {
  if (zahl>15) {
    return convertToHex(zahl/16) + convertSingleDitig(zahl%16);
  } else {
    return convertSingleDigit(zahl);
  }
}
So ungefähr. Wobei du deine ganzen if-Abfragen in die
Code:
convertSingleDigit
-Methode auslagerst. Die ist dazu da um aus 0..15 > 0..F zu machen.

P.S. so viele If-Anfragen brauchst du nicht... wenn der Rest kleiner ist als 10, kannst du direkt ihn als
Code:
String.valueOf(rest)
zurückgeben. Bei den >9 Werten kannst du auch
Code:
String.valueOf((char) ('A'+rest-10))
rechnen.
 
U

updater

Mitglied
Wenn es schon eine Einschränkung gibt, dass man keine Schleifen benutzt, dann wird man die toHexString-Methode auch nicht benutzen dürfen...
Die Idee ist schon die richtige, nur du musst jetzt mit Rückgabewerten arbeiten:
Java:
public static String convertToHex(int zahl) {
  if (zahl>15) {
    return convertToHex(zahl/16) + convertSingleDitig(zahl%16);
  } else {
    return convertSingleDigit(zahl);
  }
}
So ungefähr. Wobei du deine ganzen if-Abfragen in die
Code:
convertSingleDigit
-Methode auslagerst. Die ist dazu da um aus 0..15 > 0..F zu machen.

P.S. so viele If-Anfragen brauchst du nicht... wenn der Rest kleiner ist als 10, kannst du direkt ihn als
Code:
String.valueOf(rest)
zurückgeben. Bei den >9 Werten kannst du auch
Code:
String.valueOf((char) ('A'+rest-10))
rechnen.


Danke für die Antwort. Ich werde es mal probieren. Würde das auch irgendwie ohne Auslagerung gehen?
 
X

XHelp

Top Contributor
Sicher. Musst eben vor der if-Abfrage
Code:
zahl%16
zu Hex umwandeln und dann
Code:
convertSingleDigit
-Stellen in der if durch dein Ergebnis ersetzen.
 
U

updater

Mitglied
Sicher. Musst eben vor der if-Abfrage
Code:
zahl%16
zu Hex umwandeln und dann
Code:
convertSingleDigit
-Stellen in der if durch dein Ergebnis ersetzen.

Hey , also das mit der Auslagerugn hat super geklappt:

Java:
	public static String convertSingleDigit(int zahl) {
		
		String s="";
        
	      if (zahl == 0){
	    	  s = "0";}
	      if (zahl == 1){
	    	  s = "1";}
	      if (zahl == 2){
	    	  s = "2";}
	      if (zahl == 3){
	    	  s = "3";}
	      if (zahl == 4){
	    	  s = "4";}
	      if (zahl == 5){
	    	  s = "5";}
	      if (zahl == 6){
	    	  s = "6";}
	      if (zahl == 7){
	    	  s = "7";}
	      if (zahl == 8){
	    	  s = "8";}
	      if (zahl == 9){
	    	  s = "9";}
	      if (zahl == 10){
	    	  s = "A";}
	      if (zahl == 11){
	    	  s = "B";}
	      if (zahl == 12){
	    	  s = "C";}
	      if (zahl== 13){
	    	  s = "D";}
	      if (zahl == 14){
	    	  s = "E";}
	      if (zahl == 15){
	    	  s = "F";}
	      
	      return s;}

Wie ich das jetzt ohne Auslagerung mache habe ich nicht verstanden, so wie du es beschrieben hast
 
X

XHelp

Top Contributor
Java:
public static String convertToHex(int zahl) {
  //einzelne Stelle berechnen
  int rest = zahl%16;
  String singleLetter;
  if (rest < 10) {
    singleLetter = String.valueOf(rest);
  } else {
    singleLetter = String.valueOf((char) ('A' + rest - 10));
  }

  //und hier eben das Ergebnis einsetzen:
  if (zahl > 15) {
    return convertToHex(zahl / 16) + singleLetter;
  } else {
    return singleLetter;
  }
}
Zeilen 2-9 sind nichts anderes als deine convertSingleDigig-Methode, nur etwas zusammengefasst.
 
U

updater

Mitglied
Vielen Dank für deine Hilfe! Klappt alles wunderbar! :toll:

Wünsche einen schönen Tag.

Gruß

updater
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Umrechner (Dezimal, Hexadezimal und Binär) Java Basics - Anfänger-Themen 3
F Erste Schritte Dezimal in Hexadezimal Java Basics - Anfänger-Themen 5
E Hexadezimal in Dezimal Java Basics - Anfänger-Themen 25
F dezimal zu hexadezimal Java Basics - Anfänger-Themen 14
N Umrechung Binär in Dezimal und Hexadezimal Java Basics - Anfänger-Themen 7
G Dezimal zu Hexadezimal Java Basics - Anfänger-Themen 2
M wie hexadezimal in dezimal wandeln? Java Basics - Anfänger-Themen 16
S dezimal od. hexadezimal Java Basics - Anfänger-Themen 3
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
D Dezimal zu Dual mit Rückgabewert Java Basics - Anfänger-Themen 39
G Dezimal zu Binärcode Programm Java Basics - Anfänger-Themen 9
J Dezimal in Binär (Array) Java Basics - Anfänger-Themen 2
D Umrechnung dezimal -> oktal | signed/unsigned? Java Basics - Anfänger-Themen 1
L Dezimal- zu Binärsystem Java Basics - Anfänger-Themen 4
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
D römische Zahlen in Dezimal ausgeben Java Basics - Anfänger-Themen 9
dave253 IEEE-Norm in Dezimal Java Basics - Anfänger-Themen 12
Z Dezimal > Binär-Umrechnung Logikfehler? Java Basics - Anfänger-Themen 8
K Erste Schritte Dezimal in binär Java Basics - Anfänger-Themen 17
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
V Binär in Dezimal Java Basics - Anfänger-Themen 4
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
N Compiler-Fehler Dezimal to binary Java Basics - Anfänger-Themen 2
C Dezimal- und InputVerifier/FocusListener Probleme Java Basics - Anfänger-Themen 3
G Java Dezimal Zahlen Internazialisation Problem Java Basics - Anfänger-Themen 7
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
C dezimal in binär Java Basics - Anfänger-Themen 3
M Binär -> Dezimal Java Basics - Anfänger-Themen 11
V Tool zum Umrechnen Dezimal in Hex Java Basics - Anfänger-Themen 7
B Dezimal Binär? Java Basics - Anfänger-Themen 10
B Dezimal --> Hex Java Basics - Anfänger-Themen 3
M String(Binärzahl) in Dezimal umwandeln Java Basics - Anfänger-Themen 4
S Dual in Dezimal umwandeln? Java Basics - Anfänger-Themen 24
R Unicode-Wert in Binär und Dezimal umformen - kleines Problem Java Basics - Anfänger-Themen 1
S Dezimal- in Hexadezimalzahl umwandeln Java Basics - Anfänger-Themen 4
C Hilfe bei Umrechnung von dezimal nach binär Java Basics - Anfänger-Themen 9
O Dezimal in Dual...Arraygröße & Runden Java Basics - Anfänger-Themen 4
X Dezimal/-Hexcode in lebares format umwandeln Java Basics - Anfänger-Themen 4
S Int zu Hexadezimal - Rekursive Methode Java Basics - Anfänger-Themen 2
M Erste Schritte boolean: ist Zahl Hexadezimal - Lösung verwirrend Java Basics - Anfänger-Themen 6
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
Z Methoden Methode, die Ziffer aus Hexadezimal in Zehnerdezimal umrechnet Java Basics - Anfänger-Themen 5
Luk10 String (Hexadezimal) zu int parsen Java Basics - Anfänger-Themen 12
E Methoden umrechnung binär/oktal/hexadezimal in dezimalsystem (Methode) Java Basics - Anfänger-Themen 1
S Wie überprüfen das in Textfield nur Hexadezimal ist? Java Basics - Anfänger-Themen 4
M Hexadezimal Problem Java Basics - Anfänger-Themen 13
A Hexadezimal Java Basics - Anfänger-Themen 7
V Hexadezimal Zahlen addieren Java Basics - Anfänger-Themen 14
T Integer zu Hexadezimal konvertieren Java Basics - Anfänger-Themen 6
E Hexadezimal in double, int, char Java Basics - Anfänger-Themen 7
V Binär + Hexadezimal Java Basics - Anfänger-Themen 3
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Rekursive swapArray Methode Java Basics - Anfänger-Themen 69
D Rekursive Methode Java Basics - Anfänger-Themen 8
R Methoden rekursive Methoden Java Basics - Anfänger-Themen 6
O Quersumme rekursive Methode Java Basics - Anfänger-Themen 3
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
J rekursive Methode Java Basics - Anfänger-Themen 26
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
M Rekursive Dateiliste erstellen mit Dateiendung(en) ?? Java Basics - Anfänger-Themen 4
S Rekursive Methode Java Basics - Anfänger-Themen 8
O Rekursive Methode Java Basics - Anfänger-Themen 4
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
K Rekursive Methode Java Basics - Anfänger-Themen 1
K Rekursive Methode für Fakultät mit BigInteger Java Basics - Anfänger-Themen 10
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
G Harmonische Rekursive Folge Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
P Methoden Rekursive Methode für Potenzen Java Basics - Anfänger-Themen 2
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
B Rekursive Algorithmus schreiben Java Basics - Anfänger-Themen 8
S Eine rekursive Lösung Java Basics - Anfänger-Themen 4
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
shiroX OOP Rekursive und Iterative Definition Java Basics - Anfänger-Themen 2
B Methoden Rekursive Methoden Java Basics - Anfänger-Themen 2
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
C rekursive methode Java Basics - Anfänger-Themen 2
D Methoden Rekursive Methoden Java Basics - Anfänger-Themen 13
R rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
M Stürzen alle Rekursive Methoden irgendwann ab? Java Basics - Anfänger-Themen 11
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
S rekursive folge verbessern Java Basics - Anfänger-Themen 2
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
S Methoden rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
E Rekursive Methode Java Basics - Anfänger-Themen 3
N Methoden Rekursive Fibonaccizahlen mit Array Java Basics - Anfänger-Themen 2
R Rekursive Ausgabe eines Binärbaums Java Basics - Anfänger-Themen 4
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Anzeige

Neue Themen


Oben