# binärzahlen addieren



## cartman55 (15. Nov 2004)

hallo,

wer kann mir einen tipp geben, wie ich in java binärzahlen addieren kann?
bsp. 11011 + 111 = 100010


----------



## Guest (15. Nov 2004)

```
Integer.valueOf("11011", 2).intValue() + Integer.valueOf("111", 2).intValue()
```
Wahnsinn, was? :roll:


----------



## cartman55 (16. Nov 2004)

waaaahnsinn 
aber so darf ich das leider nicht machen.
ich bräcuhte einen tipp, wie ich das mit if else hinbekomme...


----------



## Wildcard (16. Nov 2004)

Genau so wie es auch ein elektronisches Bauteil machen würde:

1+1=0
1+0=1
0+1=1
0+0=0

dann überall den übertrag dazu und fertig


----------



## Wildcard (16. Nov 2004)

eine recht technische Lösung könnte z.B. so aussehen


```
//Hab der einfachheit halber Binärzahlen in int's geschrieben
    public add(int zahl1, int zahl2)
    {
        
        boolean offset=false;
        
       while (zahl1>0 || zahl2>0)
       {
           boolean z1=false,z2=false; 
           if (zahl1%10==1)
               z1=true;
           if (zahl2%10==1)
               z2=true;
           offset=addieren(z1,z2,offset);
           zahl1=zahl1/10;
           zahl2=zahl2/10;
       }
       if (offset)
           System.out.print(1);
    }


    private boolean addieren(boolean z1, boolean z2, boolean offset) 
    {
        if (z1 && z2)
            if (offset)
            {
                System.out.print(1);
                return true;
            }
            else
            {
                System.out.print(0);
                return true;
            }
        else if (z1 || z2)
            if (offset)
            {
                System.out.print(0);
                return true;
            }
            else
            {
                System.out.print(1);
                return false;
            }
        else 
            if (offset)
            {
                System.out.print(1);
                return false;
            }
            else
            {
                System.out.print(0);
                return false;
            }            
    }
```

das Ergebnis wird spiegelverkehrt ausgegeben.


----------

