# Addition von Dualzahlen



## Maxung (15. Nov 2013)

Hey Community hab leider ein kleines Problem bei der Addition von Dualzahlen.
Hier mein bisheriger Code.

```
Scanner dezimaleins = new Scanner(System.in);
            System.out.println("Geben sie ihre Dezimalzahl ein:");
            int dezimal1 = scan.nextInt();
            Scanner dezimalzwei = new Scanner(System.in);
            System.out.println("Geben sie ihre Dezimalzahl ein:");
            int dezimal2 = scan.nextInt();
            String dual1;
            String dual2;
            dual1 = DezimalinDual(10);
            dual2 = DezimalinDual(5);
            int c;
            if (dual1.length()<dual2.length()){
                c=dual2.length();
            }
            else{
                c=dual1.length();
            }
            int ergebnis[]=new int[c];
            for (int i=0;i<=c;i++){
                int tmp = dual1.charAt(i); 
                int tmx = dual2.charAt(i);
                int tmx2 = (int) tmx - 48;
                int tmp2 = (int) tmp - 48;
                if (tmp2+tmx2==1){
                    
                    ergebnis[i]=1;
                  
                }
                else if(tmp2+tmx2==0){
                    ergebnis[i]=0;
                    
                }
               else if(tmp2+tmx2==2){
                    ergebnis[i]=1;
                    ergebnis[i+1]=+1;
               }
                   
            
           } 
            System.out.println(Arrays.toString(ergebnis));
```
Hat jemand vielleicht ein Ansatz oder eine Hilfe für mich.

Danke


----------



## Gucky (15. Nov 2013)

Was funktioniert denn nicht? Bekommst du eine Exception, meckert der Compiler, funktiiniert es einfach nicht so, wie du willst aber das Programm ist der Meinung alles sei in Ordnung?

Wäre es nicht einfacher, wenn du zum Beispiel ein Boolean Array nimmst, anstatt ein solches Konstrukt?

Dein Ergebnisarray ist zu kurz. Bei der Addition könnte durchaus die eine oder andere Stelle dazukommen.


----------



## Maxung (15. Nov 2013)

Hi, es kommt einfach das falsche Ergebnis raus.
Boolean Array kenn ich leider nicht.


----------



## Gucky (15. Nov 2013)

Ein boolean Array ist dasselbe, wie ein stinkormales Array. Nur halt mit Boolean Werten. Das wäre "noch mehr dual", als dein Weg mit dem int Array.


----------



## Maxung (15. Nov 2013)

Kannst du mir da ein Beispiel von meinem Code geben.


----------



## Gucky (15. Nov 2013)

Darfst du Listen verwenden? Dann wäre das wesentlich einfacher.

Sind an einem Index beide Werte 1, so wird die 1 zur Liste hinzugefügt und der Übertrag wird gespeichert und bei der nächsten Rechenoperation mit addiert, ist nur einer 1, so wird nur die 1 hinzugefügt und der Übertrag wird addiert (wodurch der Übertrag wieder gespeichert werden müsste) und sind beide 0, so wird (wenn vorhanden der Übertrag addiert die 0 (/die 1) hinzugefügt. Das geht am anschaulichsten, wenn du dir mal die schriftliche Addition von zwei Zahlen im Dualsystem aufschreibst und dann genau das umsetzt.

PS: Beispiel gibts morgen. Mit den Handy geht das schlecht.


----------



## Maxung (15. Nov 2013)

Gucky hat gesagt.:


> Darfst du Listen verwenden? Dann wäre das wesentlich einfacher.
> 
> Sind an einem Index beide Werte 1, so wird die 1 zur Liste hinzugefügt und der Übertrag wird gespeichert und bei der nächsten Rechenoperation mit addiert, ist nur einer 1, so wird nur die 1 hinzugefügt und der Übertrag wird addiert (wodurch der Übertrag wieder gespeichert werden müsste) und sind beide 0, so wird (wenn vorhanden der Übertrag addiert die 0 (/die 1) hinzugefügt. Das geht am anschaulichsten, wenn du dir mal die schriftliche Addition von zwei Zahlen im Dualsystem aufschreibst und dann genau das umsetzt.
> 
> PS: Beispiel gibts morgen. Mit den Handy geht das schlecht.



Ich kann eigentlich alles außer vorgefertigte Methoden verwenden solange ich das verstehe(und erklären kann).


----------



## Gucky (15. Nov 2013)

Dann hoffe ich mal, daas Listen erlaubt sind.

Schreib dir einfach mal die schriftliche Addition auf. Dann sollte das ganz einfach sein.


----------



## eMmiE (16. Nov 2013)

Habe auch einen Link gefunden:
http://www.sps-lehrgang.de/dualzahlen-addieren/

Probier aber erstmal ohne


----------



## Maxung (16. Nov 2013)

Ich weiß wie man Dualzahlen addiert bloß nicht wie man es in Java umsetzt, da es mit den arrays nicht passt. Und wie Listen funktionieren weiß ich auch nicht.


----------



## Gucky (16. Nov 2013)

Bei Listen kann man einfach Dinge adden oder einen Index entfernen, sofern es ihn gibt.


----------



## ARadauer (16. Nov 2013)

Ok wo ist jetzt konkret das problem?
erkläre mal schritt für schritt wie es ohne java geht...


----------

