Home
/
JavaForum
/
Beginner
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
5.050 User online
2 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 204 von 2963 (7%)
Autor
exi
Datum
24.11.05, 01:15
Betreff
Re: int to hex
Hallo,
dein Problem entsteht, weil du innerhalb der Routine hex() mit int arbeitest und dich auf die java-internen Umwandlungen verläßt.
Die Anweisung int rest = 'A' gibt dir nicht den String "A", sondern wandelt das Character 'A' in eine int-Zahl um. Der ASCII-Wert dieses Characters sind die 65 die für dich überraschend aufgetreten sind.
(ASCII 0-47 sind Sonderzeichen, 48-57 sind die Ziffern, 58-64 sind Sonderzeichen, 65-90 sind die Großbuchstaben, dann Sonderzeichen bis 96, 97-122 sind die Kleinbuchstaben, danach Sonderzeichen bis 255)
Wenn du wie bisher nur die Dezimalzahlen 0 bis 15 eingeben möchtest, dann genügt es wenn du innerhalb der case-Bedingung ergebnis = "A", genauer für alle Fälle ="1", ="2", ..., ="A", ="B", ..., ="E" zuweist. Achte dabei darauf, daß hier Anführungszeichen und keine Hochkommas stehen! Deine derart korrigierte Funktion solltest du besser als
String HexZiffer(int zwischenwert)
benennen. Denn sie würde immer nur eine Ziffer (0-E) zurückliefern.
Wahrscheinlich hast du aber die Aufgabe beliebige Zahlen (im Bereich von int) in hexadezimale Zahlen zu wandeln. Ermittle also diejenige Potenz von 16 die kleiner, höchstens gleich, deiner eingegebenen Zahl ist. Eröffne eine Wiederholungsschleife von dieser Potenz bis null. Hierin ermittelst du wie oft 16 hoch Schleifenindex in die Zahl hinein passt. Und lasse dir die zugehörige HexZiffer() geben. Mindere dann die Zahl um das Vielfache der 16er-Potenz und fahre mit dem nächstkleineren Index fort. Die einzelnen HexZiffern sammelst du dann in einem String ergebnis, den du nach Abschluß der Schleife ausgibst.
tschüs
exi
Diskussionsverlauf:
int to hex
Re: int to hex
Re: int to hex
Re: int to hex
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com