Binäre Addition

alexschmid97

Aktives Mitglied
Hey,
ich muss an der Uni ne Aufgabe lösen, in der ich zwei binäre Zahlen addieren muss.

Hier ist mal mein Code: Ich habe mir eine Hilfsvariable angelegt, da ja bei der Addition manchmal eine 1 übernommen werden muss. Ich bi mir nur nicht sicher ob man das so machen kann. Die binären Zahlen sollen als Arrays übergeben werden.
Java:
public static int[] add(int[] a, int[] b) {
	int[] solution = new int[numberOfbits];
	int helpvalue = 1;

	for (int i = a.length; i >= 0; i--) {
		if (a[i] + b[i] == 2) {
			helpvalue = 1;
		} else {
			helpvalue = 0;
		}
		solution[i] += a[i] + b[i] + helpvalue;
	}
	return solution;
}

numberOfbits ist eine Variable die ich vorher initialisiert habe, da wir nur mit 8 bit rechnen sollen.

Gruß Alex
 

Joose

Top Contributor
Hier ist mal mein Code: Ich habe mir eine Hilfsvariable angelegt, da ja bei der Addition manchmal eine 1 übernommen werden muss. Ich bi mir nur nicht sicher ob man das so machen kann. Die binären Zahlen sollen als Arrays übergeben werden.

Die einfachste Art es zu überprüfen ist den Code auszuführen mit Werten wo man weiß was bei der Addition rauskommt ;)

Aber nein dein Code hat einen Fehler:
Java:
        if (a[i] + b[i] == 2) {
            helpvalue = 1;
        } else {
            helpvalue = 0;
        }
        solution[i] += a[i] + b[i] + helpvalue;

Mit diesem Code schaffst du es das in solution auch der Wert 3 stehen kann.
Wenn "a + b == 2" ist dann soll die Hilfsvariable zwar auf 1 gesetzt werden, aber in solution darfst du maximal 1 eintragen.
Außerdem musst du nicht nur "a + b" rechnen sondern auch noch die Hilfsvariable miteinbeziehen ;)
 

alexschmid97

Aktives Mitglied
ok ja natürlich :)

könnte man das so machen ?

Java:
public static int [] add(int []a, int []b) {
            int [] solution= new int [numberOfbits];
            int helpvalue=1;
          
            for (int i=a.length ; i>=0 ; i--) {
                if (a[i]+ b[i]==2) {
                     solution[i]=0 ; helpvalue=1;
                } else {
                    helpvalue =0;
                }  
            solution[i]+= a[i]+b[i]+helpvalue;  
            }
            return solution;
        }
 
Zuletzt bearbeitet von einem Moderator:

alexschmid97

Aktives Mitglied
der Grund warum ich es leider nicht testen kann ist, dass ich ned weiß wie ich die arrays in der main Methode schreiben kann. Wär cool wenn mir das einer zeigen könnte, weil es sind ja 2 Arrays und das bereitet mir irgendwie Probleme :)
 

alexschmid97

Aktives Mitglied
ja ok das weiß ich schon, aber in meinem Fall sind es ja zwei array.
also :

Code:
public static void main (String [] args) {
          
             int [] a int [] b = add ({0,1,1,0},{0,1,1,1})

aber wie muss ich da die Klammern setzen und die Kommas, da zeigt es bei mir immer Fehler an
 

InfectedBytes

Top Contributor
indem du einfach zwei zeilen schreibst, so schwer ist das doch nicht
Java:
int[] x = {0,1,0,1,1,0,0};
int[] y = {0,1,1,1,1,1,0};
 

alexschmid97

Aktives Mitglied
ok, aber ich muss das ja auf meine add Methode anwenden.
also so ?

Code:
int [] a= add (1,0,0,1,1,1,0,1);
int [] b= add (1,1,1,0,1,0,1,1);

aber da Zeigt mit Eclipse immer ein Fehler mit den Klammern an. eigentlich ja zuerst ( wegen der Methode und dann { wegen dem Aufruf der Zahlen
 

Tarrew

Top Contributor
Java:
        int[] x = {0,1,0,1,1,0,0};
        int[] y = {0,1,1,1,1,1,0};
        int[] result = add(x,y);

Dir scheinen die Grundlagen zu fehlen. Vllt. einfach nochmal die Vorlesungsfolien angucken bzw. ein gutes Buch und die Grundlagen richtig verstehen.
 

alexschmid97

Aktives Mitglied
ok alles klar, hab mich nochmal schlau gemacht was die Methode betrifft, stand gestern irgendwie auf dem Schlauch ;)
, kann jetzt auch die werte ausgeben.. nur aber sind die falsch.
Ich brauche irgendwie noch eine Idee, wie ich es schaffe, dass wenn die addition der Binärwerte 2 ergibt eine 0 geschrieben wird und eine 1 auf die nächste stelle übernommen wird.
Ich hab dazu schon eine Hilfsvariable geschrieben, aber wie kann ich diese innerhalb meiner if-Abfrage ändern?
 

alexschmid97

Aktives Mitglied
Java:
public class test_addition {

    public static void main (String[]args) {
        int [] c= {0,1,1,1,0,0,1,0};
        int [] d = {0,1,1,0,1,0,1,0};
        int [] add1= add(c,d);
        String add_ausgabe= "";
        for (int i=0 ; i<8 ; i++) {
            add_ausgabe +=add1[i];
        }
         System.out.println("Die Addition von " +  add_ausgabe);
    }

        public static int [] add(int []a, int []b) {
            int [] solution= new int [8];
            int helpvalue=1;
            for (int i=a.length ; i<0 ; i--) {
                if (a[i]+ b[i]==0) {
                     solution[i]=a[i]+b[i]+helpvalue ; helpvalue=0;
                } else if (a[i]+b[i]==1) {
                     solution[i]=a[i]+b[i];
                } else if(a[i]+b[i]==2) {
                     solution [i]=0 ; helpvalue =1;
                }    
            }
            return solution;
        }
}
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
das versuche ich ja, aber wie kriege ich das mitnehmen der 1er in den Code?
Weiter oben habe ich dir schon einen Weg gesagt.

Die if-Bedingungen kann man so lassen, aber der Code der in jedem Zweig ausgeführt wird ist einfach falsch.
  • Wenn "a + b == 0": Dieser Zweig passt, weil die Addition ergibt 0, der Wert der im Überlauf ist wird einfach hinzuaddiert, das Ergebnis eingetragen, die Hilfsvariable wieder zurücksetzen.
  • Wenn "a + b == 1": Wo beachtest du hier den Überlauf? Hier macht es einen Unterschied ob im Überlauf nun 1 oder 0 drinnensteht! Je nachdem ist das Ergebnis ein anderes
  • Wenn "a + b == 2": Wie schon beim oberen, wo beachtest du den Überlauf? Hier macht es ebenfals einen Unterschied ob im Überlauf 1 oder 0 drinnensteht. Je nachdem ist das Ergebnis ein anderes

Nur beim 1.Zweig beziehst du deine Hilfsvariable mit ein, und setzt sie auch zurück. Ansonsten machst du damit einfach nichts.

Ein Tipp für den 3.Zweig:
Code:
if (a + b == 2) {
  if (überlauf == 1) {
    solution = ????
    überlauf = ????
  } else {
    solution = ????
    überlauf = ????
  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Binäre Addition Java Basics - Anfänger-Themen 5
pkelod Binäre Darstellung Bitwise-Operator Java Basics - Anfänger-Themen 10
M binäre Suche im Intervall Java Basics - Anfänger-Themen 6
M binäre Suche Java Basics - Anfänger-Themen 4
amelie123456 Lineare Suche / Binäre Suche Java Basics - Anfänger-Themen 2
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
RudiRüssel Binäre Suche, unsortiert, lokales Maximum Java Basics - Anfänger-Themen 15
S Binäre-Suche Algorithmus Java Basics - Anfänger-Themen 1
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
S binäre semaphore Java Basics - Anfänger-Themen 4
L Binäre Suche mit Comparator Java Basics - Anfänger-Themen 5
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
H Erste Schritte Binäre Suche Java Basics - Anfänger-Themen 37
H Rekursion Binäre Suche Java Basics - Anfänger-Themen 2
L Binäre Suche Java Basics - Anfänger-Themen 2
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
B Binäre Suche - Junit Test Java Basics - Anfänger-Themen 6
J Binäre Suche eines Array Java Basics - Anfänger-Themen 5
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
V Binäre Suchbäume Java Basics - Anfänger-Themen 1
M Binäre Suche Fehler überall =( Java Basics - Anfänger-Themen 2
M Compiler-Fehler Binäre Zahlen in Dezimalzahlen umrechnen Java Basics - Anfänger-Themen 3
K binäre Suchbäume Java Basics - Anfänger-Themen 3
D Binäre Suche für Integerarray in rekursiver Funktion Java Basics - Anfänger-Themen 5
W Compiler-Fehler Binäre Suche Java Basics - Anfänger-Themen 2
S Multi-Threaded Binäre Suche Java Basics - Anfänger-Themen 29
A Binäre Suche Java Basics - Anfänger-Themen 2
W Binäre Suche Java Basics - Anfänger-Themen 8
E Binäre Bäume Java Basics - Anfänger-Themen 7
O String Binäre Suche Java Basics - Anfänger-Themen 6
M Binäre Suche, Elemente einfügen Java Basics - Anfänger-Themen 2
0x7F800000 wie pack ich komplette objekte in binäre dateien? Java Basics - Anfänger-Themen 4
A Binäre Suche; Java Basics - Anfänger-Themen 6
F Binäre Exponentiation Java Basics - Anfänger-Themen 9
M binäre Daten als Double einlesen Java Basics - Anfänger-Themen 22
M binäre daten einlesen Java Basics - Anfänger-Themen 2
G Binäre Suchbaum + Erstellung des Programmes Java Basics - Anfänger-Themen 4
R Binäre logische Operatoren Java Basics - Anfänger-Themen 21
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
J Double Variable und Addition Java Basics - Anfänger-Themen 2
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
L Addition von 1 bis n, in Arrays umstellen Java Basics - Anfänger-Themen 15
E Addition Array Java Basics - Anfänger-Themen 6
M Array Addition Binärzahlen Java Basics - Anfänger-Themen 9
M Addition mit hohen Zahlen - Hilfe Java Basics - Anfänger-Themen 5
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
X Compiler-Fehler Possible loss of precision bei addition von int und char Java Basics - Anfänger-Themen 5
C Logischer Fehler mit Addition von Arrays Java Basics - Anfänger-Themen 3
I Schriftliche Addition Arrays Java Basics - Anfänger-Themen 2
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
X Addition von Strings Java Basics - Anfänger-Themen 12
X Arrays/Addition Java Basics - Anfänger-Themen 18
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
K Datentypen Kurzform Addition geht, Langform scheitert am Typen Java Basics - Anfänger-Themen 6
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
P Addition von 2 Variablen Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
E Addition von char und int als Zeichen ausgeben Java Basics - Anfänger-Themen 11
J Addition zweier Zahlen Java Basics - Anfänger-Themen 9
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
X Addition rekursiv ohne Schleife Java Basics - Anfänger-Themen 10
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
E Addition von Arrays Java Basics - Anfänger-Themen 4
H Mysteriöse Ausgaben nach Addition Java Basics - Anfänger-Themen 5
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
M Ausgabe einer gerade Zahl nur mit Addition,subtraktion und vergleichsoperatoren! Java Basics - Anfänger-Themen 4
J klasse vektor addition Java Basics - Anfänger-Themen 10
S Anzahl der Überträge bei einer Addition ausgeben Java Basics - Anfänger-Themen 8
S Addition von eigenen Objekten mit "+" Symbol Java Basics - Anfänger-Themen 19
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
A ungenaue addition Java Basics - Anfänger-Themen 2
A Addition mehrdimmensionaler Arrays - Klausurfrage :-( Java Basics - Anfänger-Themen 3
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
J Addition von double values fehlerhaft? Java Basics - Anfänger-Themen 5
H Subtraktion mittels Negierung auf Addition zurückführen Java Basics - Anfänger-Themen 4
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
V Addition in einem Zweidimensionalenfeld Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben