Dienstag, 28. Juli 2015

Die verschiedenen Zahlensysteme

In diesem Artikel geht es um die verschiedenen Zahlensysteme(Binär, Dezimal und Hexadezimal), und wie man Zahlen aus dem einen System in ein anderes umrechnet.


Das Binärsystem

Das Binärsystem ist das System, welches Computer oder Mikrocontroller "in echt" verwenden. Dabei gibt es nur zwei Ziffern: die 1 und die 0. Dabei wird bei jedem mal, wenn die Zahl um eins hochgezählt wird, eine 1 an die letzte Stelle(die rechteste Stelle hinzugefügt).Sollte sich dort bereits eine 1 befinden, wird eine 0 geschrieben und die 1 auf die nächste Stelle(eins weiter links) geschoben. Wenn sich dort auch schon eine 1 befindet wird wieder eine 0 geschrieben und die 1 um eine Stelle nach links verschoben und so weiter. Das bedeutet also 10(Dezimal 2) wird mit eins addiert also 1 wird zu 11. Wenn man drei(Binär: 11) mit 1(Binär:1) addiert kommt 100(Dezimal:4) heraus, da die beiden 1 der drei jeweils in eine 0 umgewandelt werden. Hier einmal eine kleine Umrechnungstabelle:
Was auffällt, ist, dass sich bei jeder neuen Stelle der Wert der Zahl verdoppelt: Die erste Stelle eine 1, die zweite eine 2, die dritte eine 4, die vierte eine 8... Dadurch lassen sich auch Dezimalzahlen in Binärzahlen umwandeln und umgekehrt.

Dezimalzahlen in Binärzahlen umwandeln

Man schaut, welche Stelle des Binärsystems die Größte ist, die hineinpasst. Beispielsweise bei der Zahl 23 die Zahl 16, also die 5 Stelle. Man erhält einen Rest von 7. Die größte Stelle die in 7 reinpasst ist die 4, also die dritte Stelle. Man erhält den Rest 3. In drei ist die größte Stelle die 2 Rest 1 und 1 ist die erste Stelle. Man erhält also binär eine 5 stellige Zahl. Die Stellen 16, 4, 2, 1 bilden die Zahl 23, also lautet die Zahl 23 binär 10111, da die vierte Stelle (8) nicht "besetzt" ist, also 0.

Binärzahlen in Dezimalzahlen umwandeln

Beim Umwandeln von Binärzahlen in Dezimalzahlen muss überprüft werden, auf welchen Stellen eine 1 sitzt. Diese Stellen werden dann addiert. Die Zahl 10011 hat eine 1 auf der 1 Stelle, der 2 Stelle und der 16 Stelle. 1 + 2+ 16 = 19.

Um dem Compiler in der jeweiligen Programmiersprache mitzuteilen, dass diese Zahl eine Binärzahl ist, gibt man vor der Zahl 0b an.

Das Hexadezimalsystem

Im Hexadezimalsystem gibt es 16 Ziffern, anstatt 10 Ziffern, wie im Dezimalsystem. Diese 16 Ziffern sind die Ziffern 0 bis 9 und dann weiter von A bis F. F steht dabei für 15.

Dezimalzahlen in Hexadezimalzahlen umrechnen

Um eine Dezimalzahl in eine Hexadezimalzahl umzurechnen muss man die Zahl durch 16 teilen. Der Rest, der bei dieser Division entsteht ist die rechteste Stelle. Das Ergebnis der Division wird erneut durch 16 geteilt und der Rest ist wieder die nächste Stelle. Dieser Vorgang muss solange wiederholt werden, bis das Ergebnis 0 ist.

Hexadezimalzahlen in Dezimalzahlen umrechnen

Um eine Hexadezimalzahl in eine Dezimalzahl umzurechnen muss man jeweils die Übersetzung des Zeichen ins Dezimalsystem mit der 16 Potenz der akutellen Stelle multiplizieren. Es beginnt ganz rechts mit 16^0 also 1 und arbeitet sich nach links vor. Am Ende werden die Einzelwerte addiert. Ein kleines Beispiel: Hexadezimal 7F
15 * 16^0 = 15 * 1 = 15
7 * 16^1 = 7 * 16 = 112
112 + 15 = 127

Um dem Compiler in der jeweiligen Programmiersprache mitzuteilen, dass diese Zahl eine Hexadezimalzahl ist, gibt man vor der Zahl 0x an.

Umrechnung Hexadezimalzahlen Binärzahlen

In einem Programm/Sketch ist es, beispielsweise bei der Portmanipulation, nötig anzugeben welche der 8 Pins eines Ports low und welche high sein sollen. Das kann man binär darstellen, oder aber auch mit einer Hexadezimalzahl. Wenn alle Pins high sein sollen wäre das binär 11111111. Um diese "Zahl" in eine Hexadezimalzahl umzurechnen muss man sie jeweils in vierer Blöcke auteilen: 1111 1111. Diese vierer Blöcke werden nun in Hexadezimalzahlen umgerechnet: 1111 = 15 = F. Die binäre Angabe 11111111 entspricht also Hexadezimal FF.
 

Keine Kommentare:

Kommentar veröffentlichen

Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html