SWT Konverter Dualzahl in Hexadezimalzahl

lorlo16

Neues Mitglied
Hallo zusammen,

im Laufe der Prüfungsvorbereitung versuche ich gerade ein Fenster zu Erstellen, das einen Konverter von Dualzahlen in Hexadezimalzahlen sein soll. Das hat auch ganz gut funktioniert. Allerdings habe ich noch zwei kleine Probleme:

1. Ich habe eine Messagebox eingerichtet, die erscheinen soll, wenn andere Ziffern als 1 und 0 eingegeben werden. Sie erscheint aber nur, wenn man Buchstaben eingibt. Gibt man Ziffern (0-9) ein, kommt als Ergebnis einfach nur 0 raus und es erscheint keine MessageBox.

2. Ich kann maximal eine zehnstellige Dualzahl eingeben (--> Ab 11 Stellen erscheint die Messagebox und als Ergebnis erscheint 0)

Kann mir bitte einer von Euch helfen das Problem zu lösen?

Abgebildet ist nur die Methode public void berechne(), da ich denke, dass zur Lösung des Problems nur dieser Abschnitt nötig ist. Wenn nicht bitte kurz melden und ich werde den vollständigen Code hochladen.

Vielen Dank im Voraus und viele Grüße!


lorlo16

KonverterTeil1.JPG KonverterTeil2.JPG
 
K

kneitzel

Gast
Wieso parst Du denn die dual-Zahl in einen Integer? Das limitiert dich natürlich massiv und ich sehe da gerade nicht den Sinn drin. Du kannst das doch direkt als String handhaben.

Und Du hast doch den Zusammenhang, dass immer 4 Bits ein Hex-Zeichen ergeben. Also kannst Du doch einfach immer 4 Zeichen auf einmal behandeln. Das ginge dann auch über Dein ParseInt Aufruf für längere Zeichenketten.

Zur Prüfung der Eingabe kannst Du natürlich reguläre Ausdrücke verwenden oder so. Aber klar - wenn Du einfach nur ein ParseInt verwendest, dann sind auch die Ziffern 2-9 erlaubt. Modulo 10 ist da nicht 1 so dass klar ist, dass diese Ziffern als 0 gewertet werden. Hier könntest Du natürlich auch eingreifen und z.B. ein switch Statement verwenden. 0 und 1 wird ausgewertet und der Rest landet im default wo Du eine Fehlermeldung ausgibst oder so ...

Und wenn Du von dual nach hex willst: Da ist nicht zwingend der Umweg über die Dezimalzahl notwendig. Zumindest nicht für alle Stellen (bei einer 4er Gruppe findet das streng genommen schon statt).

Soviel einfach einmal von meiner Seite.

Konrad
 

Neue Themen


Oben