binärzahlen addieren

Status
Nicht offen für weitere Antworten.
Code:
Integer.valueOf("11011", 2).intValue() + Integer.valueOf("111", 2).intValue()
Wahnsinn, was? :roll:
 
waaaahnsinn 😀
aber so darf ich das leider nicht machen.
ich bräcuhte einen tipp, wie ich das mit if else hinbekomme...
 
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
 
eine recht technische Lösung könnte z.B. so aussehen

Code:
//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.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben