dezimalzahl in hexadezimalzahl umwandeln

Status
Nicht offen für weitere Antworten.
R

rudirijkaard

Gast
hallo
ich soll ein programm schreiben, das als parameter eine positive ganze zahl übergeben bekommt und diese zahl als string im hexadezimalformat zurückliefern soll
leider hab ich das bisher nur so hinbekommen, dass mir die hexadezimalzahl in der falschen reihenfolge ausgegeben wird
wie kann ich dieses problem beheben?
ich denke mal, dass ich in der switch-anweisung die system.out.print befehle durch etwas anderes ersetzen muss
kann mir jemand von euch vielleicht weiterhelfen?
gruß rudi


Code:
public class Ausgabe {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		hexadezimal(4888);
	}
	
	public static void hexadezimal(int zahl){
	    
	    while(zahl>0){
	  	int Rest=zahl%16;
		
	  	
		switch(Rest){
		case 0:System.out.print("0");
		       break; 
		case 1:System.out.print("1");
		       break; 
		case 2:System.out.print("2");
		       break; 
		case 3:System.out.print("3");
		       break; 
		case 4:System.out.print("4");
		       break; 
		case 5:System.out.print("5");
		       break; 
		case 6:System.out.print("6");
		       break; 
		case 7:System.out.print("7");
		       break; 
		case 8:System.out.print("8");
		       break; 
		case 9:System.out.print("9");
		       break; 
		case 10:System.out.print("A");
		       break; 
		case 11:System.out.print("B");
		       break; 
		case 12:System.out.print("C");
		       break; 
		case 13:System.out.print("D");
		       break; 
		case 14:System.out.print("E");
		       break; 
		case 15:System.out.print("F");
	    }
	
		
		zahl=zahl/16;
		}
	}
	
		
}
 
G

Guest

Gast
wohl leider nicht
aber könnte ich die werte nicht irgendwie in einem array speichern
und mir dann rückwärts ausgeben lassen?
wenn ja, wie wie würde das funktionieren?
 

Zubi81

Aktives Mitglied
Salü rudirijkaard

Eine Möglichkeit für die Umrechnung vom Dezimalsystem ins Sedezimalsystem kannst du über die Divisionsreste machen...

8 = 4888 modulo 16
1 = 305 modulo 16
3 = 19 modulo 16
1 = 1 modulo 16

Jetzt das ganze von unten nach oben lesen: 4888(dez) = 1318(hex)

Nun musst du das ganze nur noch in Java umsetzen. Sollte nicht so schwer sein... :meld: :wink:

Grüsse aus der kalten Schweiz nach irgendwo! :wink:
Zubi
 
G

Guest

Gast
sry zubi81

hab leider keine ahnung wie ich das umsetzen soll
musst bedenken ich hab erst vor kurzem mit java angefangen
 

Zubi81

Aktives Mitglied
Uups :oops: , ich sollte mal den Source vorgängig besser anschauen. Das Konzept hast du ja irgendwie schon. Aber so kannst du es nicht implementieren.

Ich würde dir empfehlen das Ganze rekursiv machen. Nachfolgend Pseudocode:

Code:
main {

  string s = dez2hex(4888)
  print(s)

}

dez2hex(int x) {

  int r = x % 16
  string tmp

  switch (r)
    case 10: tmp = new string("A")
    case 11: tmp = new string("B")
    ...
    case 15: tmp = new string("F")
    default:
      tmp = new string(r)
  end switch

  if ((x / 16.0) < 1) {
    return tmp
  }
  
  return dez2hex(x/16) + tmp

}
 
G

Guest

Gast
gibt es auch irgendeine möglichkeit meinen code etwas zu verändern, damit er funktioniert?
 

Zubi81

Aktives Mitglied
Salü Rudi

Vergleich deinen Code mit meinem Pseudocode und du entdeckst deine Fehler. Wenn du der Ablauf meines Pseudocodes verstehst, kannst du Ihn auch ganz einfach mit Java nachprogrammieren. ???:L

:### Rekursion in Wikipedia
:### Satz von Euklid - bestes Beispiel für eine Rekursion

Ich gehe mal davon aus, dass du die Grundlagen zu Java in der Schule / im Studium hattest!? Sonst hier eine gute Onlinequelle:

:### Java Theorie

Ich wünsche noch viel Erfolg beim Lösen der Aufgabe.

Ich gehe jetzt schlafen :gaen:

P.S. Schreib mir, was mein Pseudocode macht, dann liefere ich dir vielleicht morgen den vollständigen Javacode! :wink:

Code:
// ...

public static void main(String[] args) {

  String s = dec2hex(4888);
  System.out.println(s);

}

public String dec2hex(int x) {

  // ...

}

// ...
 

Slava

Bekanntes Mitglied
also du hast sehr gute vorsläge bekommen1
aber wenn du sturr bei deine variante bleiben möchtest
bitte schön
Code:
public class Ausgabe {

   /**
    * @param args
    */
   java.util.Stack hexwert;
   public static void main(String[] args) {
      hexadezimal(4888);
   }

   public static void hexadezimal(int zahl){
      java.util.Stack <String> hex=new java.util.Stack<String>();
       while(zahl>0){
        int Rest=zahl%16;


      switch(Rest){
      case 0:hex.push("0");
             break;
      case 1:hex.push("1");
             break;
      case 2:hex.push("2");
             break;
      case 3:hex.push("3");
             break;
      case 4:hex.push("4");
             break;
      case 5:hex.push("5");
             break;
      case 6:hex.push("6");
             break;
      case 7:hex.push("7");
             break;
      case 8:hex.push("8");
             break;
      case 9:hex.push("9");
             break;
      case 10:hex.push("A");
             break;
      case 11:hex.push("B");
             break;
      case 12:hex.push("C");
             break;
      case 13:hex.push("D");
             break;
      case 14:hex.push("E");
             break;
      case 15:hex.push("F");
       }


      zahl=zahl/16;
      }
     while(!hex.empty())System.out.print(hex.pop());
   }


}
aber ich habe das nicht programmiert
 

Mag1c

Top Contributor
Hi,

du könntest das ganze auch rekursiv machen:

Code:
public class Ausgabe { 

   /** 
    * @param args 
    */ 
   public static void main(String[] args) { 
      hexadezimal(4888); 
   } 
    
   public static void hexadezimal(int zahl){ 
      
      if (zahl > 15) hexadezimal(zahl/16);

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

Gruß
Mag1c
 

Mag1c

Top Contributor
Hi,

noch eine Variante mit StringBuffer:

Code:
public class Ausgabe { 

   /** 
    * @param args 
    */ 
   public static void main(String[] args) { 
      hexadezimal(4888); 
   } 
    
   public static void hexadezimal(int zahl){ 
       StringBuffer buf = new StringBuffer();

       while(zahl>0){ 
        int Rest=zahl%16; 
       
         
      switch(Rest){ 
      case 0:buf.insert(0, '0'); 
             break; 
      case 1:buf.insert(0, '1'); 
             break; 
      case 2:buf.insert(0, '2'); 
             break; 
      case 3:buf.insert(0, '3'); 
             break; 
      case 4:buf.insert(0, '4'); 
             break; 
      case 5:buf.insert(0, '5'); 
             break; 
      case 6:buf.insert(0, '6'); 
             break; 
      case 7:buf.insert(0, '7'); 
             break; 
      case 8:buf.insert(0, '8'); 
             break; 
      case 9:buf.insert(0, '9'); 
             break; 
      case 10:buf.insert(0, 'A'); 
             break; 
      case 11:buf.insert(0, 'B'); 
             break; 
      case 12:buf.insert(0, 'C'); 
             break; 
      case 13:buf.insert(0, 'D'); 
             break; 
      case 14:buf.insert(0, 'E'); 
             break; 
      case 15:buf.insert(0, 'F'); 
       } 
      zahl=zahl/16; 
      }
    System.out.println(buf.toString());
   } 
}

Gruß
Mag1c
 
B

beginnner

Gast
L-ectron-X hat gesagt.:
Mit Integer.toHexString(...) gibts eine vorgefertigte Anweisung. Weiß nicht, ob du die nutzen darfst?

Code:
public class HexTest {


	public static void main(String[] args) {

		String s2 = toHexString(185);
		System.out.println(s2);
	}
	
	public static String toHexString(int i){

		String s = toHexString(i);
		return s;
	}

}

Das stimmt wohl irgend wie nicht, zeigt fatal error.
Kann mir jemand einen Tipp geben wo der Fehler liegen koennte? (int 185 in Hexa Darstellung)
 

Zubi81

Aktives Mitglied
Du machst da einen rekursiven Aufruf... Richtig wäre:

Code:
String s = Integer.toHexString(i)
 
B

beginnner

Gast
ok, jo hab ich nicht beachtet.
(Danke fuer die schnelle Antwort :))
 

Bleiglanz

Gesperrter Benutzer
Vorzeichen?

andere Variante:
Code:
    public static final char[] HEXDIGITS = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
    public static String intToHex(int zahl) {
        final boolean negative = (zahl < 0);  
        zahl = negative ? -zahl : zahl;
        final char[] res = new char[8];
        for(int i=0;i<8;i++){
            res[8-i-1] = HEXDIGITS[(zahl>>(4*i))&(0x000F)];          
        }
        if(negative)
            return "-"+String.valueOf(res);
        else
            return String.valueOf(res);
    }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
wofus Interface EditText Feld Multiline Dezimalzahl Java Basics - Anfänger-Themen 2
C Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 4
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
S Variablen Abbruchbedingung: Dezimalzahl Java Basics - Anfänger-Themen 32
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
P Zeichenkette mit Binärzahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 3
O Dezimalzahl in andere Zahlensysteme Java Basics - Anfänger-Themen 5
1 Binärdarstellung (als String) in Dezimalzahl umwandeln Java Basics - Anfänger-Themen 8
H inputfeld dezimalzahl mit komme statt punkt Java Basics - Anfänger-Themen 12
H OOP Dezimalzahl in Binärzahl mit GUI - Problem Java Basics - Anfänger-Themen 14
J Dezimalzahl in Binärdarstellung Java Basics - Anfänger-Themen 6
J Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 5
F Variablen Dezimalzahl oder doch nicht? Java Basics - Anfänger-Themen 5
D String mit 2 Stellen nach dem Komma (Dezimalzahl) Java Basics - Anfänger-Themen 9
D Umwandlung char -> dezimalzahl und ausgabe als int Java Basics - Anfänger-Themen 5
C Dezimalzahl in Dualzahl. Java Basics - Anfänger-Themen 11
S Regex für Dezimalzahl. Problem mit Nachkommastellen Java Basics - Anfänger-Themen 5
P Umrechnung von Basis b zu Dezimalzahl Java Basics - Anfänger-Themen 7
G Dezimalzahl(integer) ziffernweise umdrehen Java Basics - Anfänger-Themen 3
G Binärzahl in dezimalzahl umwandeln Java Basics - Anfänger-Themen 5
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
A Länge einer Hexadezimalzahl in Bits Java Basics - Anfänger-Themen 40
S Dezimal- in Hexadezimalzahl umwandeln Java Basics - Anfänger-Themen 4
G Hexadezimalzahl von String in Long umwandeln Java Basics - Anfänger-Themen 3
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
R int in Ascci umwandeln Java Basics - Anfänger-Themen 7
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
S JAR zu EXE umwandeln Java Basics - Anfänger-Themen 22
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
O von Basis 10 in Basis x umwandeln Java Basics - Anfänger-Themen 5
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
I JSON Datei in Array umwandeln Java Basics - Anfänger-Themen 1
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
W Dezimalzahlen in Binärzahl umwandeln. Wie möglich ? Java Basics - Anfänger-Themen 9
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
MiMa String in Gross und Kleinbuchstaben umwandeln Java Basics - Anfänger-Themen 10
H JCalendar in String umwandeln Java Basics - Anfänger-Themen 9
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
G .java in .jar umwandeln Eclipse Java Basics - Anfänger-Themen 12
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
C Array in String umwandeln Java Basics - Anfänger-Themen 5
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
D String zu int umwandeln Java Basics - Anfänger-Themen 2
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
K Wie .java in .jar umwandeln? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
G double in float umwandeln Java Basics - Anfänger-Themen 2
M csv in xlsx umwandeln Java Basics - Anfänger-Themen 7
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
J Mit Eclipse PLZ in Koordinaten umwandeln und ausgeben Java Basics - Anfänger-Themen 3
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
T opengl Dreick in einen Würfel umwandeln Java Basics - Anfänger-Themen 0
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
N Unsymmetrisches mehrdimensionales Array in eindimensionales umwandeln Java Basics - Anfänger-Themen 2
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
S Klasse properties - Probleme beim umwandeln Java Basics - Anfänger-Themen 3
J subStrings zu int Array umwandeln? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben