Dualsystem in Dezimalsystem

B

ByeBye 203306

Hey,

ich habe mich in den letzten zwei Tagen mal ein kleines Javaprogramm gesetzt, welches Dezimalzahlen in Dualzahlen umrechnen (was hervorragend klappt) und andersrum (was leider nicht so hervorragend klappt).

Es funktioniert grundlegend, aber das Problem ist:
Wenn ich als Dualzahl 110 (Dezimal: 6) eingebe und dann den Button zum Konvertieren drücke gibt er mir als Dezimalzahl die 7 aus. Gebe ich als Dualzahl 111 (was wirklich die 7 ist) ein, gibt er mir hier auch die 7 aus. Genauso bei 1010 und 1011.
Nach geschätzter zweistündigen Fehler- bzw. Denkfehlersuche, wende ich mich nun an euch.

Das umrechnen habe ich mit Hilfe von Wikipedia und ein wenig googlen ermöglicht.^^

Hier mal die Methode zum Umrechnen von Dual in Dezimal:

Code:
private void convertDual() {
    
    // Variablen
    
    String inputString = dualinput.getText();
    String zahlenString[] = new String[inputString.length()];
    
    int zahlen[] = new int[inputString.length()];
    int n = inputString.length()-1;
    int x = inputString.length()-inputString.length();
    int erg = 0;
    
    
    // Zahlen überprüfen und in Array speichern
    
    String pattern = "^[0-1]+$";
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(inputString);
    
    boolean b = m.matches();
    
    if(b == true) {
        
        for(int i = 0; i < inputString.length(); i++) {
            
            zahlenString[i] = inputString.substring(i,i+1);
        }
        
        for(int j = 0; j < inputString.length(); j++) {
            
            zahlen[j] = Hilfsfunktionen.string2int(zahlenString[j]);
        }
        
        // Rechnung
                
        while(n > -1) {
            erg += (int)Math.pow(zahlen[x]*2,n);
            
            n--;
            x++;
            
            dezimalinput.setText(erg + "");
        }
        
        fehler.setText("");
    }
    else {
        
        fehler.setText("Bitte geben Sie nur Zahlen im Dualzahlensystem an.");
    }
}

Lieben Gruß,
MacMo

PS.: Ihr dürft nicht zu viel erwarten, ich programmiere noch nicht lange in Java. Wir machen es gerade in der Schule.
 
Aaah, natürlich. >.<
zahlen[x] wird ja auch gar nicht mit quadriert. -.-
Den Wald vor lauter Bäumen nicht gesehen.

Vielen Dank, jetzt funktioniert es!

Gruß,
MacMo
 
Zurück