WIE WAR DAS NOCH GLEICH?
Heute: BINÄR, der ausführliche Teil
In der letzten Amiga 4ever habe ich über die Umrechnung einer Binärzahl in
eine Dezimalzahl gesprochen. Ich habe dies anhand des Beispieles 00010100
getan. Nun hat mich nach dem erscheinen der achten Ausgabe der gute
Yoshimitsu angerufen und gefragt, wie man dies denn umgekehrt, also von
Dezimal zu Binär wandeln könne. Also möchte ich an dieser Stelle nochmal
einen ganz ausführlichen Artikel schreiben:
Nehmen wir einmal das Binäre Beispiel 00010100. Zuvor stellen wir fest, das dieser Binärcode aus acht Stellen besteht; jede dieser Stellen ist ein BIT, acht davon geben ein BYTE, also ein Zeichen.
Wir beginnen bei der Umrechnung ins Dezimale mit dem Wert ganz rechts; dieser steht für 2^0. Der Nächste für 2^1, dann 2^2 usw. bis 2^7
Steht der Wert auf 1 (wie hier bei 2^2) so wird dies errechnet und alle
Ergebnisse zusammengezählt.
Machen wir dies einmal tabelarisch sichtbar:
| 0 - 2^7 | ||
| 0 - 2^6 | ||
| 0 - 2^5 | ||
| 1 - 2^4 | = 2*2*2*2 | = 16 |
| 0 - 2^3 | ||
| 1 - 2^2 | = 2*2 | = 4 |
| 0 - 2^1 | ||
| 0 - 2^0 | ||
| Macht zusammen | 20 <<-- Und schon haben wir die dezimale Darstellung des Binärcodes 00010100 | |
Welchen Wert kann denn ein Byte überhaupt haben?
Nun, nehmen wir einfach einmal den höchsten Binären wert, also setzten wir
jedes Bit auf 1. Wichtig ist, daß wir uns der Mathematischen Definition
von 2^0 bewusst sind, welche nicht etwa 0, sondern immer 1 ergibt!
| 1 - 2^7 | = | 128 |
| 1 - 2^6 | = | 64 |
| 1 - 2^5 | = | 32 |
| 1 - 2^4 | = | 16 |
| 1 - 2^3 | = | 8 |
| 1 - 2^2 | = | 4 |
| 1 - 2^1 | = | 2 |
| 1 - 2^0 | = | 1 |
| Gleich | = | 255 |
Der höchste Wert, der ein Byte (also 8 bit) annehmen kann ist also 255. Na, diese Zahl kommt Euch doch bestimmt auch bekannt vor! ;-)
So, nun wollen wir das Spielchen mal andersherum aufziehen. Nehmen wir hierzu einfach einmal die Zahl 163.
Nun müssen wir nacheinander schauen, aus welchen Werten (von 2^7 bis 2^0) diese Zahl besteht.
Dies tun wir Schritt für Schritt mit den Werten die wir kennen, angefangen von 128, dann 64, 32, 16 und so weiter.
128 passt in unsere 163 schonmal herein, also können wir das Bit 128, also 2^7, auf " 1 " setzten!
Natürlich müssen wir die 128 jetzt von unserer Zahl abziehen! 163 - 128 ergibt einen Rest von 35.
Da passt die 64 nicht mehr rein; also 2^6 = " 0 "
32 passt wieder rein. 2^5 = " 1 ". Unser Rest (35-32) = 3
Die 16, 8 und 4 passen nicht mehr, also alle drei auf " 0 "
2^1, also 2 passt wieder in unsere 3. Also auf " 1 " und übrig ist 1
Na, wie gehts weiter?
2^0 = 1, die passt und wir haben keinen Rest mehr. 2^0 auf " 1 "
Nun blicken wir zurück: Gepasst haben die 128, die 32, 2 und 1. Diese müßen
wir also auf " 1 " setzten, die anderen Bits auf " 0 "
Behelfen wir uns wieder einer Tabelle:
| Gepasst: | 128 | - 2^7 - 1 |
| 64 | - 2^6 - 0 | |
| Gepasst: | 32 | - 2^5 - 1 |
| 16 | - 2^4 - 0 | |
| 8 | - 2^3 - 0 | |
| 4 | - 2^2 - 0 | |
| Gepasst: | 2 | - 2^1 - 1 |
| Gepasst: | 1 | - 2^0 - 1 |
Also haben wir für die Zahl 163 einen Binärcode von 10100011 !!!
Am besten, unter zuhilfenahme dieses Textes, einmal selber ausprobieren.
Für Diejenigen die immer noch nicht genug haben jetzt eine weitere
Spielerei:
Betrachten wir einmal den Zeichensatz unserer " Freundin ". Der besteht (rein
Zufällig ;) aus 255 Zeichen! Das heißt, wir können jedes Zeichen Binär
darstellen. Dazu müßen wir natürlich den ASCII-Code des entsprechenden
Zeichens kennen. Dieser kann sogenannten ASCII-Zeichencode-Tabellen ent-
nommen werden.
Übersetzten wir einmal unseren Chefredakteur in Binär:
Rainer (" R " und " r " haben natürlich auch unterschiedliche Codes!)
| Zeichen | ASCII | Binär |
| R | 82 | 01010010 |
| a | 97 | 01100001 |
| i | 105 | 01101001 |
| n | 110 | 01101110 |
| e | 101 | 01100101 |
| r | 114 | 01110010 |
Und jetzt können wir Rainer in Zukunft Binär ansprechen:
01010010 01100001 01101001 01101110 01100101 01110010
Oder lassen wir mal die Bytegliederung weg:
010100100110000101101001011011100110010101110010 = Rainer
So, ich hoffe dieser Artikel war einigermaßen verständlich. Den Profis sei gesagt: Bitte nehmt meine stark vereinfachte Erklärung nicht zu ernst, ich habe versucht, die ganze Geschichte so zu erklären, daß sie Jeder versteht! Bis zum nächsten mal...
Wissen ist Macht!
Weißt' nichts,
macht nix!
I`ll be back
0100110101100001011100100110001101101111
Mr.Tilt@schoko.dbn.de
I have`nt lost my mind -- it`s backed
up on tape somewhere...but where...uhhh...%-)