So, nun aber mal zu einem echten Informatik-Thema, oder besser: zu dem Informatik-Thema schlechthin (welches auch titelgebend für das Blog war): dem Bit.
Studierte Informatiker, Mathematiker und Artverwandte werden diesen Artikel unter Umständen ein wenig langweilig finden (so viel sei hier schon gesagt: es geht um das binäre Zahlensystem), aber da hoffentlich auch einige Leute aus anderen Bereichen hier mitlesen, möchte ich diesen Grundlagenartikel trotzdem bringen. Wer sich trotz dieser Warnung ob der Einfachheit intellektuell beleidigt fühlt, kann keinen Einspruch mehr erheben – er wurde vorgewarnt!
Das Bit ist die kleinste Werteinheit, die durch einen Computer dargestellt werden kann; es kann lediglich zwei verschiedene Werte annehmen, welche für gewöhnlich mit 0 und 1 oder falsch und wahr (false und true im Englischen) bezeichnet werden. Damit entspricht ein einzelnes Bit einer einzelnen Ziffer aus dem Dualsystem bzw. Binärsystem (beide Begriffe sind äquivalent, ich werde den zweiten benutzen), dem Zahlensystem zur Basis 2. Die Bedeutung der Zweiwertigkeit für die Informatik kommt daher, dass derartige Ziffern recht einfach durch die Zustände „Strom an” und „Strom aus” dargestellt werden können – dazu aber in einem späteren Beitrag mehr.*
Wer damit jetzt nichts anfangen kann: das sonst üblicherweise benutzte Zahlensystem ist das Dezimalsystem, also ein Zahlensystem zur Basis 10. Wir unterscheiden normalerweise zehn verschiedene Ziffern (0, 1, 2, …, 9), aus welchen wir die uns bekannten Zahlen zusammensetzen. Beim Zählen mit dem Dezimalsystem wird nach jeweils zehn aufeinanderfolgenden Werten ein Übertrag auf die nächsthöhere Zehnerstelle aufgerechnet: nach der 9 kommt die 10, nach der 19 die 20, nach der 99 die 100 und so weiter.
Das binäre System folgt genau den gleichen Regeln, mit dem einzigen Unterschied, dass es hier eben nur zwei verschiedene Ziffern gibt, der Übertrag also entsprechend früher entsteht. Die ersten 15 Zahlen im Binärsystem mit ihrer jeweiligen Entsprechung im Dezimalsystem lauten also folgendermaßen:
Werden im gleichen Kontext Zahlen aus verschiedenen Zahlensystemen benutzt, so wird die Basis ihres Zahlensystems für gewöhnlich mit einer nachgestellten Zahl angezeigt, also zum Beispiel 1410 für eine Dezimalzahl und 10112 für eine Binärzahl.
Die Umrechnung von Binärzahlen ins dezimale System ist relativ einfach. In beiden Systemen entspricht jede Position innerhalb der Zahl einer bestimmten Potenz; im Dezimalsystem einer Zehnerpotenz, im Binärsystem entsprechend einer Zweierpotenz. Die erste (hinterste!) Stelle, die Einerstelle, in einer Dezimalzahl entspricht der Potenz 100, die zweite Stelle (die Zehnerstelle) entspricht der Potenz 101, die Hunderterstelle der 102 und so weiter. Die Zahl 365 lässt sich also folgendermaßen darstellen (auf die Anzeige der Basis 10 verzichte ich hier):
Im binären System kann genau die gleiche Rechnung angestellt werden, wodurch sich durch einfaches Ausrechnen auch gleich die Umrechnung ins Dezimalsystem ergibt. Am Beispiel der Zahl 1011 sähe das folgendermaßen aus:
Aufmerksame Leser werden sich jetzt sicher fragen, warum beim Aufspalten der Dezimalzahl in die einzelnen Potenzen die Zahl wieder selbst, bei der Binärzahl aber die Umrechnung in die Dezimalzahl herauskam. Der Grund hierfür ist, dass die Potenzen selbst in einem bestimmten Zahlensystem stehen und entsprechend ausgerechnet werden müssen. In unserem Fall standen die Potenzen alle im Zehnersystem, dementsprechend fand eine Umrechnung ins dezimale System statt. Auf diese Art kann übrigens jede Zahl in ein anderes Zahlensystem umgerechnet werden.
Das Rechnen mit Binärzahlen findet genauso wie im Dezimalsystem statt, mit dem bereits genannten Unterschied, dass weniger Ziffern zur Verfügung stehen. Hiermit erklärt sich also auch der Titel dieses Beitrages: die Addition der beiden Zahlen 1 und 1 ergibt im dezimalen System 210, im Binärsystem dementsprechend 102. Die anderen Rechenarten folgen den gleichen Regeln. Übrigens kann im binären System ebenso wie im Dezimalsystem schriftlich addiert werden – der Übertrag hat hier nur den Wert 0 oder 1, ansonsten ist das Schema gleich!
Von besonderer Bedeutung in der Informatik sind die sogenannten logischen Operationen. Das sind Rechenoperationen, die so in erster Linie auf den binären Zahlen definiert sind; praktisch jeder Rechner baut auf diesen logischen Operationen auf (warum das so ist, werde ich in einem späteren Artikel erklären). Die am häufigsten verwendeten Operationen sind die Negation (¬), die Und-Verknüpfung (∧), die Oder-Verknüpfung (∨) und vielleicht noch das Exklusiv-Oder (⨁). Die Regeln für derartige Rechnungen sind relativ einfach und mit einer kleinen Wertetabelle für jeden Operator gut darzustellen:
In der Informatik ist es üblich, mehrere Bits zu sogenannten Bitketten fester Länge zusammenzufassen. Historisch gewachsen ist dabei die bekannteste Bitkette der Länge 8: das Byte. Heute übliche Bitketten haben entweder die Länge 32 (wenn ein Rechner vor allem damit rechnet, spricht man von einem 32-Bit-System) oder die Länge 64 (dann ist es ein 64-Bit-System). Natürlich sind auch andere Längen möglich, üblich sind jedoch in der Regel Zweierpotenzen (also 8, 16, 32, 64, 128 und so weiter). Die oben erklärten logischen Operationen können auch auf ganze Bitketten angewandt werden (und in der Tat wird das häufig gemacht); die praktische Umsetzung sieht dann so aus, dass einfach paarweise die einzelnen Positionen in beiden Bitketten miteinander verrechnet werden.
Regelmäßig für Verwirrung sorgt die Verwendung von Maßeinheiten wie Kilo, Mega, Giga im Zusammenhang mit binären Zahlen. Diese entsprechen nämlich nicht einer Größenordnung von 1000 (103), sondern einer Größenordnung von 1024 (210). Ein Kilobyte sind demnach nicht 1000 Byte, sondern 1024 (210 Byte), ein Megabyte entsprich 1025 1024 Kilobyte (220 Byte) und so weiter.
Damit sollte jetzt auch endlich allen der folgende Witz klarwerden:
There are 10 kinds of people – those who understand Binary and those who don’t.
Alles klar soweit?
Nachtrag:
Nils hat eben korrekt darauf hingewiesen: es gab (und gibt immer mal wieder) den Vorschlag, die üblichen Präfixe wie kilo, mega und so weiter in ihrer üblichen Form (also als Potenzen 103, 106, …) zu benutzen und für die Binärpotenzen die Vorsätze “kibi”, “mebi” und ähnliches zu verwenden. Auf Grund der weiten Verbreitung der aktuellen Verwendung konnten sich diese Vorschläge jedoch bisher nicht durchsetzen.
*Durch die Bits ergibt sich übrigens die oft benutzte Bezeichnung „digital” für alles, was mit Computern zu tun hat. „Digital” leitet sich vom lateinischen Wort „digitus”, dem Finger ab; es bezieht sich auf das Fingerzählen, deutet also ein diskretes (halbe Finger werden nicht gezählt) und vor allem ein endliches (wir haben nur 10 Finger) Zählsystem an.
Kommentare (15)