Bisher sind im Laufe dieser "Reihe" Zahlen i.a. in einer Form aufgetaucht, daß man sie zwar benutzt und evtl. auch verrechnet hat, auch mal getauscht oder abgespeichert, evtl. bestimmte Fixwerte geändert hat, man sie aber nie wirklich "verstehen" mußte.
Darum sollen hier, bevor noch ein/zwei kleinere Abschnitte über Bits und "Bitgeschubse" folgen, zunächst ein paar Worte über dezimal - hexadezimal - binär und was damit zusammenhängt gesagt werden.
Wichtigster Punkt: Eine Zahl ist unabhängig von der Art, wie man sie darstellt !
soll heißen, wenn man über eine Zahl als solche redet, ist es dieser völlig egal, ob sie nun in römischer Notation (XXIII) oder dezimal (23) oder hexadezimal ($17) angesprochen/aufgeschrieben wird.
(Es ist quasi eine Konvention, daß man davon ausgeht, daß man es mit den gleichen Objekten auf einem jeweils vorgestellten Zahlenstrahl, der aber unterschiedlich unterteilt sein kann, zu tun hat.)
dezimal
Kennt jeder. Das ist die Sache mit den 10ner Stellen. Immer wenn die Ziffern 0-9 ausgeschöpft sind, wird eine neue Stelle am linken Rand der Zahl eröffnet und dort mit einer neuen 1 begonnen. Wenn diese Stelle bei 9 ankommt, wird links noch eine Stelle mit einer Kapazität von 0-9 angefügt. Es ist daher eigentlich auch zulässig, statt einer 23 zu schreiben
000023
Dies macht dann auch noch eine zusätzliche Aussage, die bei Computern wichtig sein kann; sie sagt nämlich etwas über den maximalen Darstellungsbereich aus, den man betrachten möchte. Dieser geht hier von 000000 bis 999999, umfaßt genau also 1ne Million Zahlen. Das sind 10^6, d.h. die 10 (dezimal) als Wert des Zahlensystems in der Basis und die 6 im Exponenten für die Anzahl der Stellen.
Das Besondere am Dezimalsystem ist eigentlich nur: es wird als üblicher Standard benutzt, weshalb wir (d.h. Menschen im (zumindest) europäischen Kulturkreis) Zahlen i.a. "in dezimal denken".
Das ist auch der Grund, weshalb i.a. auch auf Computern (Quellcodes etc.) keine besondere Kennzeichnung von Dezimalzahlen erfolgt.
Es ist mithin schwierig die Zahl 23 im normalen Umgang anders als als 23 zu sagen. Formal korrekter müßte man aber eigentlich über die "Zahl, die in dezimaler Notation als eine 23 dargestellt wird" sprechen.
[Nun sieht man schon, daß das möglicherweise zu Problemen im Zeitungsladen, der Eckkneipe oder im Supermarkt führen könnte, zumindest zu Unverständnis.]
Für die eigene Akzeptanz anderer Zahlensysteme ist das aber eine sehr hilfreiche Vorstellung, diese Trennung in Zahl und Notation gelegentlich zu überdenken.
hexadezimal
Kennt hier mittlerweile auch jeder. Das wurde bereits ständig benutzt - für Adressen ($5000), als Wert (#$28) oder als Kodierung für Buchstaben ($01="A") oder Farben ($02=Dunkelrot) usf.
Man hat als erste erkennbare Besonderheit ein vorangestelltes $ Symbol. Das macht kenntlich, daß es eine hexadezimal notierte Zahl sein soll, die folgt. Das Symbol selbst ist nicht irgendwie "geregelt", daher wird auf verschiedenen Plattformen auch unterschiedliches dafür verwendet; etwa ein "&" oder ein vorangestelltes "0x".
Als weitere Besonderheit gibt es die Sachen mit den Buchstaben, die immer mal bei Hexzahlen auftauchen. Eigentlich sind es aber nur 6 Stück und zwar "A" bis "F". Und das liegt schlicht daran, daß der Basiswert des hexadezimalen Zahlensystems die 16 ist und man für die Werte 0-9 aus reiner Bequemlichkeit die dezimale Notation beibehält und diese um 6 Zeichen ergänzt hat, um die noch fehlenden anzeigen zu können. Das das nun gerade Buchstaben sind ... ist halt so.
(Man hätte auch z.B. direkt 16 Buchstaben benutzen können. Oder beliebige ausgedachte Zahlsymbole extra für Hexzahlen.)
Es bedeuten also
0 die Null, 1 die Eins, 2 die Zwei ... 9 die Neun
und da ja zur Basis 16 dargestellt wird, gibt es ein Symbol für
die Zehn - das A, die Elf das B, die Zwölf das C, die Dreizehn das D, die Vierzehn das E und für die Fünfzehn das F.
Wenn die Notation das $ voranstellt, sind das also $0 bis $F, die in einer Stelle stehen können.
Alles weitere funktioniert exakt so wie von den Dezimalzahlen bekannt:
- Wenn eine Stelle "voll" ist, also das $F erreicht ist, wird für die nächstgrößere Zahl eine neue Stelle links angefügt, die eine $1 erhält, woraufhin nochmal von $0 bis $F in der "vollen" Stelle weitergezählt werden kann, bis beim erneuten Erreichen des $F die linke Stelle auf $2 erhöht wird.
- Die Vorstellung des Anfügens einer Stelle kann man sich auch hier sparen, wenn man von vorneherein die Zahl als $000017 schreibt. Also "dazusagt", daß es sich um 6 Stellen handelt.
- Die damit darstellbare Zahlenmenge errechnet sich ebenfalls über (Basis des Zahlensystems)^Stellenanzahl, d.h. 16^6 (in dezimal!), also 16777216 (in dezimal!). Und das sind also genau: $1000000
Man kann damit jetzt auch genauso wie mit Dezimalzahlen rechnen etc. - nur die üblichen, gewohnten, eingebläuten Darstellungen passen eben nicht mehr - es ist ja auch eine andere Notation.
So ist $7 + $8 zwar immer noch die Zahl 15, aber das ist halt hier nunmal eine $F.
Was anschaulich "gut" funktioniert sind dagegen bestimmte Verdoppelungen, etwa $10 * 2 = $20; aber $5 * $2 ist dann schon wieder nur noch $A. Man muß dafür nochmal "neu" zählen lernen.
Es sind für die Benutzung abseits von Rechnern etwa auch negative Ganze Zahlen einfach durch Vorsetzen eines Minussymboles möglich. Allerdings gibt es direkt auf Computern auch eine besondere Version der Darstellung negativer Zahlen, die auf einer besonderen Eigenheit der Zahlendarstellung in Binärform beruht und den Bereich einer Zahl halbiert, wobei der wertmäßig größere Halbteil zu negativen Zahlen "erklärt" wird. Also:
$80, $81, $82 ... $FE, $FF (sind alle negativ) - die Null, $00 - dann $01, $02, $03 ... bis $7F (die positiven Zahlen)
Eine für Computer wichtige Darstellung ist, sich auf kleine Hexzahlen zu beschränken und irgendwann kennt man diesen kleinen Zahlensatz einfach "aus Gewohnheit".
Das Übliche sind 2 Stellen - das sind also $00 bis $FF. Dies hat vor allem damit zu tun, daß das der Bereich ist, den man mit 8 Stellen in einem binären Zahlensystem darstellen kann, und die Computerentwicklung sich in Richtung 8 Bit als eine Art Basiseinheit entwickelt hat. 8 Bit = 1 Byte = 2-Stellen-Hexzahl.
(Das müßte übrigens nicht so sein, etwa wenn 12 Bit Rechner die Kinderzimmer (und Fabriken, Verlage etc.) erobert hätten.)
Anwendung findet soetwas auch heute, in Zeiten der 64Bit (32Bit) Rechner, z.B. bei Grafiken, wo jede der drei Grundfarben eines Bildes mit $FF Helligkeitswerten für jeweils Rot, Grün, Blau einzeln angegeben wird.
Natürlich ist es auch problemlos möglich größere Hexzahlen zu benutzen.