|
|
|
|
|
|
|
|
|
Zahlen beschreiben elektrische Signale |
||
|
.. Kennung von Zahlensystemen |
||
|
|
||
|
7.
Kennzeichnung von Zahlen verschiedener Systeme
Beim
Programmieren benutzt der Programmierer gerne das Zahlensystem,
welches sein Problem am deutlichsten beschreibt. Will er
beispielsweise die Werte einer Torausgabe in einem Befehl
angeben, wird er das binäre Zahlensystem benutzen, um die
Setzung der einzelnen Torbits aufzuschreiben. 0001 0010b sagt
aus, dass das 1. und das 4. Torbit *) gesetzt werden sollen. Bei
der hexadezimalen Angabe 12h oder der dezimalen Angabe 18 wäre
dies nur nach einer Rechnung zu erkennen gewesen.
*) Die Bits wurden hier von rechts nach link, mit 0 beginnend gezählt |
||
|
|
Programmiersprachen unterstützen den Programmierer in diesem Wunsch. Normalerweise stehen alle vier Zahlensysteme zur Verfügung. Doch nun muss zwingend den Zahlen hinzugefügt werden, aus welchem Zahlensystem sie stammen sollen. 10h ist eben nicht das Gleiche wie 10b. In dem ersten Fall wird von 16 Dingen gesprochen, in dem zweiten Fall von nur 2 Dingen. Folgende Kennungsmöglichkeiten sind in Gebrauch .. |
|
|
|
Zahlen-Kennung |
dual |
oktal |
hexadezimal |
dezimal |
|
|
|
Indiziert |
1232 |
1238 |
12316 |
12310 |
|
|
|
Assembler |
123b |
123o |
123h |
123 |
|
|
|
C |
--- |
0123 |
0x123 |
123 |
|
|
|
In der Assemblersprache stehen alle vier Zahlensysteme zur Verfügung, während in C keine Binärzahlen angegeben werden können. Gewöhnungsbedürftig ist in C die Schreibweise der hexadezimalen Zahlen, die durch den Vorsatz von 0x eingeleitet werden. Geradezu gefährlich ist für Ordnungsfanatiker die oktale Schreibweise in C. Wer in einer Tabelle seine kurzen Dezimalzahlen mit einer führenden 0 auffüllt, der erhält oktale Zahlen oder mit etwas Glück eine Fehlermeldung, wenn die Zahl Ziffern enthält, die grösser sind als 7. Die indizierte Schreibweise wird in der Programmierung nicht benutzt. Man findet sie manchmal in Zeitschriften. |
|
|
|
|
|
|
|
8.
Zahlen über den ASCII-Code angeben
Normalerweise
findet die Zuordnung einer Zahl zu einer Variablen (also einer
Speicherzelle mit Namen) bei Programmiersprachen wie folgt statt
..
x= 0x4A // x wird mit der hexadezimalen Zahl 4Ah = 74 gefüllt x= 0112 // x wird mit der oktalen Zahl 112 = 74 gefüllt x= 74 // x wird mit der dezimalen Zahl 74 = 4Ah gefüllt eine zunächst verblüffende Möglichkeit ebenfalls 74 in einer Speicherzelle abzulegen ist .. x='J' // x wird mit 4Ah = 74 gefüllt. Da Speicherzellen grundsätzlich nur Zahlen enthalten können, muss der Buchstabe 'J' einer Zahl zugeordnet sein. Das trifft auch zu, denn es wird nicht der Buchstabe 'J' im Speicher abgelegt sondern sein ASCII-Code und der ist gerade 74 oder 4Ah. In diesem Fall durchsuchen der Compiler oder der Assembler die ASCII-Code Tabelle, die ihnen vom Hersteller mitgegeben wurde und ersetzt das 'J' durch seinen ASCII-Code. Dieser wird in der Speicherzelle abgelegt. |
|
|
|
|
|
.de