News... | Hack-Acad | Downloads | Web-Projekte | System-Check | Kontakt
HACKACAD - Von Bits und Bytes (Glossar)

Eine wichtige Grundlage die in der Programmierung, bzw. Datenüberttragung allgemein wichtig ist, ist das Wissen über Bits und Bytes.

Wir sind in der Regel mit dem Dezimal System vertraut. Dieses System stellt uns 10 Ziffern zur Verfügung 0 - 9. Als Bespiel nehmen wir den Wert 1234. Jede Ziffer Position folgt nun einer einfachen Mathematischen Regel. Dem Dezimal System liegt als Basis 10 zu grunde, d.h. 1234 wird wie folgt berechnet:



Alles schön und gut, doch versteht ein Rechner im Prinzip nur zwei Zustände. Oftmals als Licht an, Licht aus oder Strom ein - Strom aus bezeichnet. Offentsichtlich ist das Dezimal System also überqualifiziert. Demnach wird ein Zahlensystem mit der Basis 2 benötigt, dieses wird als das Binäre oder Duale Zahlensystem bezeichnet. Anstelle von 0 - 9 gibt es einzigst 0 und 1. Ein Beispiel für eine binäre Zahl ist 1010. Schlussfolgernd aus der eben gezeigten Mathematischen Formel folgt:



Binär 1010 ist umgerechnet somit Dezimal 10. Und das ist bereits alles was man wissen muss um ein Bit zu verstehen, denn jede Position - jede 0 oder 1 ist ein sogenanntes Bit. Werden nun 8 dieser Bits zusammengefasst spricht man von einem Byte.



Was ist nun der maximale Wert den ein Byte darstellen kann? Es wäre (binär) BIN 1111 1111 -> (dezimal) DEC 255 (!!!) ABER und dies ist nicht unerheblich wieviele Nummern kann ein Byte darstellen? 256, denn alle Bits auf 0 gesetzt ergibt ebenso DEC 0.

In der Programmierung hat man es nun auch gelegentlich mit 2 weiteren Zahlensystemen zu tun. Einmal mit Basis 16 (Hexadezimal) und einmal mit der Basis 8 (Oktal). Beiden liegt die gleiche Wert Berechnung zu grunde. Hexadezimal stellt uns aber vor ein Problem. Wenn Dezimal doch nur die Ziffer 0 - 9 kennt, was ist dann mit 10 - 15 ? Unser Zifferbereich wurde somit um die Buchstaben A - F erweitert, d.h. A ist gleich 10 und F gleich 15. Dementsprechend B, C, D und E die Werte 11, 12, 13 und 14.

Um diese recht simple Grundlage zum Verständnis abzuschliessen ein letztes Beispiel.
Berechnen wir DEC 765 in einen BIN nud HEX Wert. Als erstes kümmern wir uns um den BIN Wert.



D.h. folgen wir dem Beispiel in der Grafik sehen wir das 2^10 1024 ergibt. Da der Wert 765 kleiner ist aber grösser als 2^9 (512) wissen wir nun das Bit 2^9 auf 1 gesetzt sein muss. 765 - 512 = 253. Also wird 2^8 (256) auf 0 gesetzt und 2^7 (128) wieder auf 1. Fortführend in dieser Manier ist der binär Wert 10 1111 1101. Zur Umrechnung in einen HEX Wert machen wir es uns ein wenig leichter. Der BIN Wert wird auf 12 Bits aufgefüllt (oder allgemein so das wir bequem Halb Byte Pakete, also immer 4 Bits zusammen fassen können) => 0010 1111 1101. Betrachten wir nun alle drei 4 Bit Pakete und wandeln diese separat in DEC Werte, erhalten wir 0010 = 2 | 1111 = 15 | 1101 = 13.

Inwiefern hilft das nun f¨r den gewünschten HEX Wert ? Nun der HEX Wert ist 2FD !!! Oder wir könnten auch den langen Weg nehmen. Das gleiche Prinzip nur das die Hex Positionen 16^0, 16^1 ... 16^n sind, oder eben DEC 1, 16, 256, 4096 usw. 4096 ist bereits zu gross, wie oft passt also 256 in unseren Beispielwert? Zwei mal mit einem Restvon 253. Wie oft passt nun 16 in den Rest Wert 253? 15mal was als HEX Wert ein F bedeutet. Der übrige Restwert ist 13 also HEX D.

So nun da das geklärt ist folgt das erste Programmier Beispiel:
num_converter.html