Dezimal zu Hexadezimal rekursive Funktion

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
 

andiv

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

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.
 

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?
 

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.
 

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
 

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.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
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
M Binär zu Dezimal Java Basics - Anfänger-Themen 16
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
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
T Rekursive Methode Java Basics - Anfänger-Themen 13
emreiu Methoden Rekursive Methoden Runter- & Hochzählen Java Basics - Anfänger-Themen 2
Viktor A. Kaiser Rekursive Algorithmen Java Basics - Anfänger-Themen 9
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
new_to_coding Rekursive Reihe implementieren Java Basics - Anfänger-Themen 1
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
S Rekursive Kombinationen Java Basics - Anfänger-Themen 6
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
Csircc Rekursive Methode Stack Overflow Java Basics - Anfänger-Themen 10
schredder Rekursive Quadratzahlen - Ergebnisprozedur Java Basics - Anfänger-Themen 1
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
L Rekursive Methoden Java Basics - Anfänger-Themen 14
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
G Rekursive Methode mit 2 Aufrufen Java Basics - Anfänger-Themen 1
J Rekursive Folge (a=a-1) Java Basics - Anfänger-Themen 9
M Rekursive Java-Methode Java Basics - Anfänger-Themen 13
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
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
MiMa 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

Ähnliche Java Themen

Neue Themen


Oben