Addition von Dualzahlen

Maxung

Mitglied
Hey Community hab leider ein kleines Problem bei der Addition von Dualzahlen.
Hier mein bisheriger Code.
Java:
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
 
Zuletzt bearbeitet:

Gucky

Top Contributor
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.
 

Gucky

Top Contributor
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.
 

Gucky

Top Contributor
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. :D
 
Zuletzt bearbeitet:

Maxung

Mitglied
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. :D

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

Gucky

Top Contributor
Dann hoffe ich mal, daas Listen erlaubt sind.

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

Maxung

Mitglied
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.
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Neue Themen


Oben