Zahlensysteme |
Binärzahlen entsprechen Schalterstellungen; eine 1 kennzeichnet einen offenen Schalter, eine 0 einen geschlossenen Schalter ("Kurzschluss"). An der Binärdarstellung kann man unmittelbar die Schalterstellung einer Folge von Schaltern ablesen.
Binärzahlen entsprechen aber auch der Darstellung aller Zahlen im Computer.
In der Robotik ist eher der Zusammenhang mit den Schalterstellungen interessant; gelegentlich kürzen wir eine Folge von Schalterstellungen durch den dezimalen Wert der Binärzahl ab. ( 0b0110 = 6(10) ; 0b für Binärzahl)
8-bit-Zahl = 1 Byte
0b.... | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
1 128-er | 0 64-er | 1 32-er | 0 Sechzehner | 1 Achter | 0 Vierer | 1 Zweier | 0 Einer | |
Wert: | 128 | 0 | 32 | 0 | 8 | 0 | 2 | 0 |
Summe dezimal geschrieben: 170 | . | . | . | . | . | . | . | . |
Alle Eingabe-Ports sind durch Pullup-Widerstände auf 5 V "hochgezogen".
Der Prozessor soll so programmiert sein, dass er für eine Invertierung
sorgt . Deshalb sind Ein- und Ausgabewerte verschieden. Sie ergänzen
sich zu 255.
Für den Eingabewert ergibt sich im Beispiel: 1.27 + 0.26 + 1.25+ 0.24 + 1.23 + 0.22 +1.21 + 0.20 = 1.128 + 0.64 +1.32 + 0.16 + 1.8 + 0.4 + 1.2 + 0.1 = 170 und für den Ausgabewert: 0.27 + 1.26 + 0.25+ 1.24 + 0.23 + 1.22 +0.21 + 1.20 = 0.128 + 1.64 +0.32 + 1.16 + 0.8 + 1.4 + 0.2 + 1.1 = 85 |
Größte 8-bit-Zahl : 0b11111111 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
Integer-Zahlen bestehen aus 2 Bytes:
In Binärzahlen-Darstellung:
0b | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
Wert: | 1*32768 | 0*16384 | 1*8192 | 0*4096 | 1*2048 | 0*1024 | 512 | 0*256 | 128 | 0*64 | 32 | 0*16 | 8 | 0*4 | 2 | 0*1 |
Summe dezimal geschrieben: ???? |
Größte 2-Byte-Zahl (Integer-Zahl):
0b1111111111111111 = 32768 + 16384 + 8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 65535
Häufig wird das höchste bit als Vorzeichenbit gewählt. Dann können mit 2 Bytes Zahlen zwischen - 32767 und + 32767 dargestellt werden.
Hexadezimal-Darstellung von Zahlen (häufig durch 0x eingeleitet):
Statt im Zweier-System können Zahlen auch in anderen Systemen, z.B. im 16-er System dargestellt werden. Die einzelnen Ziffern können dann von 0 bis F = 15 gehen.
Hex-Ziffer | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Ziffernwert, dezimal geschrieben: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Die Notenstufen der Kollegstufe sind dem Hexadezimal-System perfekt angepasst.
Um gleichgeschriebene Hexadezimal- und Dezimalzahlen nicht zu verwechseln, werden nur die Dezimalzahlen mit ihren üblichen Namen gelesen. Bei anderen Zahlensystemen, wie dem Hexadezimal-System, werden Zahlen gelesen, indem ihre Ziffernfolge genannt wird. 60 wird nur im Dezimalsystem "sechzig" gelesen. Im Hexadezimal-System wird die Zahl mit "sechs-null" gelesen.
Zahl, hexadezimal geschrieben 0x8A | 8 | A |
Ziffernwert | 8*16 | 10*1 |
Zahl, dezimal geschrieben: 138 | 128 | 10 |
Zahl, hexadezimal geschrieben 0xFF | F | F |
Ziffernwert | 15*16 | 15*1 |
Zahl, dezimal geschrieben: 255 | 240 | 15 |
Die größte 1-Byte-Zahl lautet also in den verschiedenen Zahlensystemen: 0b11111111 = 0xFF = 255
Die größte 2-Byte-Zahl ist 0xFFFF = 65535.
Ganzzahlen = Integerzahlen
Wenn sie 2 Bytes umfassen, können sie Dezimalzahlen zwischen 0 und 65535 darstellen oder zwischen - 32767 und + 32767 . Der Zahlenbereich wird mit zunehmender Zahl der verwendeten Bytes größer. Multipliziert man Fließkomma-Zahlen mit einem Faktor, z.B. 1 000 000, kann man kleine Fließkommazahlen auch durch Integerzahlen darstellen. Voraussetzung ist allerdings, dass bei Rechenoperationen Integerzahlen etwa gleicher Größenordnung verknüpft werden.
Gleitkomma- oder Fließkomma-Zahlen
Damit sind Zahlen gemeint, die Bruchteile von 1 enthalten, z.B. 25,3345345 . Sie werden häufig durch Dezimalbrüche oder Zehnerpotenzen dargestellt. Besonders die Multiplikation und Division führen schnell zu Ergebnissen ganz anderer Größenordnung. In einem solchen Fall kann man das Rechnen mit Gleitkommazahlen nur schwer auf das Rechnen mit Integerzahlen zurückführen.
Bei Additionen und - eingeschränkt bei - Subtraktionen dagegen bleibt auch das Ergebnis in gleicher Größenordnung. Dann lässt sich die Rechnung mit Gleitkommazahlen leicht auf eine Rechnung mit Integerzahlen zurückführen. Programmiersprachen wie FORTH bieten zwar auch Gleitkomma-Pakete, bevorzugen aber das Rechnen mit Integerzahlen.