Apps für Android programmieren leicht gemacht!
Binaer in Dezimal

Binär in Dezimal umrechnen

„1101101010“ ich behaupte mal Jeder hat so etwas bereits mindestens einmal in seinem Leben gesehen.
Hierbei handelt es sich um eine Binärzahl, also eine Zahl zur Basis 2. Die korrekte Schreibweise wäre somit eigentlich (1101101010)2.
Dabei stehen die Einsen für „Strom an“ und die Nullen für „Strom aus“ oder anders ausgedrückt, ein Computer arbeitet so.

Diese Zahlenfolge zur Basis 2 kann nun ganz einfach in eine für den Menschen lesbare Schreibweise umgerechnet werden, dem Dezimalsystem.
Wir würden nun also gerne die Folge von „1101101010“ in eine normale Zahlfolge mit Zahlen von 0-9 umschreiben.

 

Dies können wir wie folgt:

  1. Wir fangen von Hinten nach Vorne an zu rechnen.
  2. Die erste Zahl steht für eine 1, die zweite für eine 2, die dritte für eine 4, usw. (also immer Doppelte).
  3. Für jede 1 addieren wir den in 2. angesprochenen Wert auf.

 

In unserem Beispiel würde dies bedeuten:

Wir errechnen nun das Ergebnis.
Die letzte Zahl ist 0, also rechnen wir nichts hinzu.
Die 2. Zahl von Hinten ist 1, also rechnen wir +2.
Die 3. Zahl von Hinten ist 0, also rechnen wir nichts hinzu.
Die 4. Zahl von Hinten ist 1, also rechnen wir +8.
Die 5. Zahl von Hinten ist 0, also rechnen wir nichts hinzu.
Die 6. Zahl von Hinten ist 1, also rechnen wir +32.
Die 7. Zahl von Hinten ist 1, also rechnen wir +64.
Die 8. Zahl von Hinten ist 0, also rechnen wir nichts hinzu.
Die 9. Zahl von Hinten ist 1, also rechnen wir +256.
Die 10. Zahl von Hinten ist 1, also rechnen wir +512.

Wir erhalten die Rechnung: 2+8+32+64+256+512 = 874

Somit ist (1101101010)2 das selbe wie (874)10.

Wie man sieht muss man ziemliche viele Einsen und Nullen im Computer verwenden, um eine so kurze Zahl zu speichern.

 

Java Code:

Wir können das Umrechnen in Java in etwa so realisieren:

public int BinaerZuDezimal(String binaer){
    int ergebnis = 0;

    for(int i = binaer.length()-1; i >= 0; i--){
        if(binaer.charAt(i) == '1'){
            ergebnis += Math.pow(2 , binaer.length()-1-i);
         }
    }

    return ergebnis;
}

Wir gehen einen String binaer also von Hinten nach Vorne durch und rechnen das Ergebnis von Math.pow(2, Stelle) auf unser Endergebnis drauf.
Math.pow(2, Stelle) errechnet uns so viel wie Stelle², somit das Verdoppeln der 1, um die Anzahl der Stellen.

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld