breakplaining: Binär //2608

Unter „binär“ versteht man, dass genau zwei sich ausschließende Zustände existieren. Die moderne Digitaltechnik, auf der unsere Computer beruhen, nutzt zwei Zustände, die ich hier mit 1 (high) und 0 (low) bezeichnen werde. Auch wenn es hochohmige oder undefinierte Zustände in elektronischen Schaltungen gibt, ändert das nichts an der grundsätzlichen Binarität.
Die Einheit bit (binary digit) steht für die Informationsmenge, die in einem solchem Zustand gespeichert werden kann. 1 bit bedeutet also 2 Zustände, 2 bit 2*2=4 Zustände, .. n bit 2^n Zustände. Es ist üblich, 8 bit zu einem Byte zusammenzufassen, mit dem 256 verschiedene Zustände dargestellt werden können.

Es wäre ja langweilig, wenn man mit diesen binären Zuständen nichts anfangen könnte.
Da gibt es zunächst unäre Operatoren, also Operatoren, die nur einen Eingangswert verlangen. Dieser Eingangswert kann entweder 0 oder 1 sein, was ich hier schlicht als 01 notiere.
Als Ausgangswert kommen 00, 11, 01 und 10 in Frage. 00 bedeutet „immer 0“, unabhängig vom Eingabewert. Entsprechend ist „11“ immer 1. 01 ist die Identität und liefert den Eingangswert zurück. Interessant ist nur 10, bei dem der Eingangwert invertiert wird.

Für die logischen Operationen, die zwei Eingangswerte (0011 und 0101) erwarten, gibt es im Prinzip 16 mögliche Kombinationen. Ich will hier aber nicht im Detail darauf eingehen, sondern verweise auf die Aussagenlogik. Die wichtigsten Verknüpfungen sind Und (0001), Oder (0111), sowie das exklusive Oder (0110). Mit ihnen lässt sich gemäß der De-Morgan’schen Gesetze die Boole’sche Algebra nutzen.

Eine natürliche Zahl lässt sich als Summe von Zweierpotenzen 2^i schreiben, wobei jede Potenz entweder null- oder einmal vorkommt. Kommt 2^i vor, so ist das i-te Bit gesetzt, ansonsten nicht. Die Zählung beginnt für i=0 beim Least Significant Bit. (Beispiel: 42 = 32 + 8 + 2 = 2^5 + 2^3 + 2^1, entspricht binär 101010.)
Bei den folgenden Erläuterungen gehe ich davon aus, dass es sich um Datenstrukturen von 32 bit handelt, die eine ganze Zahl von 0 bis über vier Milliarden darstellen (Vorzeichen vergessen wir).
Diese Zahl lässt sich um eine angegebene Zahl von Bits nach links oder rechts verschieben (wobei aus der anderen Richtung mit Nullen aufgefüllt wird). Dabei entspricht jede Verschiebung um ein Bit nach links einer Verdopplung. Um eine Zahl mit – sagen wir – 8 zu multiplizieren, müssen wir sie nur um drei Bits nach links verschieben. Darauf beruhen arithmetische Multiplikationen von Zahlen durch Computer. [Irgendwie muss ich jetzt gerade an meine gute, alte Brunsviga denken.]
Ahnlich entspricht jede Verschiebung um ein Bit nach rechts einer Halbierung. Dabei ist aber zu berücksichtigen, dass bei ungeraden Zahlen der halbzahlige Rest abgerundet wird.
Um binäre Zahlen zu addieren oder subtrahieren, gehen Computerprozessoren ähnlich vor wie Menschen beim Dezimalrechnen. Von rechts nach links (das ist eigentlich big-endian), angefangen also mit den Least Significant Bits, werden die jeweiligen Ziffern addiert. Aus den obigen 0011 und 0101 werden im ersten Schritt 0110, wobei beim Zusammentreffen von zwei Einsen ein Übertrag 0001 auf die nächsthöhere Stelle erfolgen muss. [Der Übertrag wird um 1 nach links geshiftet 0010, und zu 0110 addiert – ergibt 0100 und den Übertrag 0010. Übertrag wieder nach links schieben 0100 und zu 0100 addieren, ergibt 0000 und den Übertrag 0100. Nach einem weiteren Durchgang erhält man schließlich als Ergebnis 1000. 3 + 5 = 8 in dezimal.]

Man unterscheidet zwischen 10 Typen von Dateien. Unter binären Dateien versteht man Dateien, die binäre Daten enthalten. Die anderen sind Text-Dateien. Zwar enthalten diese auch binäre Daten, sind aber in Textform strukturiert – d.h. sie enthalten nur darstellbare Zeichen und werden durch Steuerzeichen wie Zeichenumbrüche gegliedert. Auch Text-Dateien sind also ein Subset von binären Dateien.

Es gibt 10 Arten von Menschen. Die einen verstehen, was binär ist. Die anderen nicht.

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

8 Antworten zu breakplaining: Binär //2608

  1. Mika schreibt:

    In der Grundschule haben wir das mit farbigen Würfeln gelernt. Ein Teil der Klasse hat es absolut nicht kapiert. Mit Logik war es ähnlich. Jemand wollte mich einkaufen schicken. 10 Eier bitte und wenn Brot da ist, eins. So ähnlich jedenfalls. Meine Antwort, das macht keinen Sinn, wurde nicht verstanden.

    Gefällt 1 Person

  2. Oh, ich liiiiiiiiiebe diese Wortspiele! Und obwohl ich jenseits des Mathematikunterrichts nie binäre Zahlen genutzt habe, finde ich deinen Text sehr gut verständlich. Ich habe direkt Lust, damit rumzurechnen.

    Gefällt 1 Person

  3. ednong schreibt:

    Es gibt 10 Arten von…
    so böse.
    Hach ja, lang ist’s her.

    Gefällt 1 Person

  4. pirx1 schreibt:

    Sogar Informatiker sind ja zunehmend kommunikations- und lernfähig.

    Mit der breiteren Anwendung des Hexadezimalsystems hat man deshalb mehr darauf geachtet, dass man Hex-Zahlen als solche markiert und damit auch im Schriftgebrauch erkennbar macht, worauf man sich eigentlich bezieht.

    Wenn man die Zahlen korrekt aussprach, dann war das aber ohnehin (auch beim Binärsystem) schon nie ein Problem und fast jeder (vermeintliche) Wortwitz in Realiter gar keiner.

    Gefällt mir

  5. Bernd schreibt:

    Die Hälfte der 10 scheints verstanden zu haben

    Gefällt 1 Person

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s