JAVA-Problem: Hexadezimalzahlen umwandeln (Binär, Dezimal)

2 Antworten

Deine Beschreibung und der Quelltext passen irgendwie nicht ganz zusammen. Du meinst du hast keine Ahnung, wie du es schaffst aus dem String ein Int zu machen, machst aber genau das im Quelltext.

Was ist denn jetzt das eigentliche Problem mit deinem Programm? Was funktioniert denn denn nicht? Wird ein falsches Ergebnis angezeigt? Kommt ein Fehler?


Freak06071995 
Fragesteller
 19.10.2013, 19:54

Ich habe wirklich keine Ahnung. Die Sache ist unser Professor ist in der Theorie viel weiter hinten als "wir" in der Praxis(Übungsstunden). Mein Tutor hat mir bei der Umwandlung etwas geholfen, aber keine Lösung für das Problem gegeben.

Wenn ich es in Eclipse ausführe kommen erstmal einige Meldungen "obsolete Methods" und der Debugger und dass kann ich erst eine Eingabe machen: z.B. FF

Anschließend geschieht nichts.

0

Du verstehst Javas Auffassung von Zahlen völlig falsch!

byte, short, int und long sind Ganzzahlentypen in Java, sie unterscheiden sich in ihrer Speichergröße und damit in ihrer Maximalgröße.

Dezimal, Hexadezimal und Oktal sind nur DARSTELLUNGSWEISEN

long a=150;
a=0b10101010101110101;
a=0377;
a=0xCAFEBABE;

Es gibt in JavaSE direkt Funktionen zum Umwandeln von Ganzzahlen in Darstellungsweisen bestimmter Zahlensysteme und ebenso Funktionen um dies rückgängig zu machen.

Der Sinn deiner Aufgabe wird aber nicht sein, diese Funktionen zu finden, sondern selbst welche zu schreiben, oder?


Freak06071995 
Fragesteller
 19.10.2013, 20:01

In der Aufgabe stehen die dazugehörigen Funktionen, nur die korrekte Anwendung von Integer.parseInt(String s, int base) ist mir nicht bewusst.. Ich denke diese ist hier wichtig.

Arbeitsauftrag

Schreiben Sie ein Konsole n programm Zahlensysteme , das jeweils einen Zahlenwert in andere Zahlensysteme konvertiert. Das folgende Beispiel zeigt die Benutzung anhand eines Beispiels:

Bitte geben Sie ei ne Zahl dezimal ein

11

Hex: b

Binär:1011

Bitte geben Sie eine Zahl hexadezimal ein

FF

Dezimal: 255

Binär: 11111111

Bitte geben Sie eine Zahl binär ein

101

Dezimal: 5

Hex: 5

Bitte geben Sie eine Zahl octal ein

77

Dezimal:

63

Hex: 3f

Lösungshinweis: Ve rwend en Sie hierzu die Integer.parseInt(String s, int base) Methode . Machen Sie sich außerdem mit den Funktionen Integer.toBinaryString sowie Integer . toHexString vertraut.

0
martin7812  19.10.2013, 23:26
@Freak06071995

Eventuell erwartet der Professor auch, dass (zumindest für die Ausgabe - eventuell aber auch für die Eingabe) die Umwandlung von "lesbarer" Zahl (d.h. String, der eine Dezimal-, Oktal-... -zahl darstellt) in einen Integer und zurück "von Hand" (also in einer selbstgeschriebenen Funktion) gemacht wird.

Hintergrund: Alles, was man irgendwie per Tastatur eingeben oder auf dem Bildschirm ausgeben kann, ist in Wahrheit ein String. Bei einem "println(Zahl)" wird in Wahrheit die Zahl (int) in eine String (und zwar dezimal) umgewandelt und dann ausgegeben. Bei der Eingabe einer Zahl ist das ähnlich.

Eventuell wünscht der Professor, dass du nicht "Integer.parseInt()" benutzt, sondern die Umwandlungsfunktion selbst schreibst.

0