Achso, das heißt, wenn man es genau nimmt steuere ich eine led mit einem schalter dann binär an --> ein und aus
Wie kann man das hex-system dann verstehen?
MfG
Michael
Druckbare Version
Achso, das heißt, wenn man es genau nimmt steuere ich eine led mit einem schalter dann binär an --> ein und aus
Wie kann man das hex-system dann verstehen?
MfG
Michael
Hier einige Beispiele wie man die Systeme an.
Das Binärsystem wendet man z.B. so an: PORTB |= (1<<PB1); //Bitoperation ist "(1<<PB1)"
Das Dezimalsystem kann man ganz einfach so anwenden: PORTB |= 100; //100 wird dann im Dezimalangegeben, wenn dichts davor steht ist eine Zahl immer Dezimal
Im Hexadezimalsystem wird man das so schreiben: PORTB |= 0x64; //Die Zahl 100 im Hex-Format, es steht bei einem Hex-Format immer "0x" davor, damit erkennt der Compiler das es eine Ziffer im Hex-Format vorliegt
Du könntest den Windowsrechner verwenden. Diesen kannst du umstellen zu "Programmierer" (Ansicht => Programmierer). Dort hast du die verschiedenen Zahlensysteme zur Auswahl und kannst sie untereinander umrechnen lassen.
MfG Hannes
Im Endeffekt sind es einfach alles nur unterschiedliche Repräsentationen der gleichen Zahl. 42 im Dezialsystem ist binär 101010. Im Speicher deines Rechners (oder deines AVRs) liegt die Zahl genau so, weil der Speicher eben nur 0 und 1 kennt. Auch die Arithmetik findet komplett auf Basis dieser Zustände statt.
So ausgeschrieben sind die Zahlen für Menschen aber unhandlich, deshalb fasst man vier Binärzahlen zu einer Hexadezimalzahl zusammen, 42 entspricht dabei 2A. Nun kommt es relativ oft vor, dass du (zum Beispiel bei Bitmanipulationen) etwas mit einzelnen Bits machen willst, du wirst mit zunehmendem Lernfortschritt dann eher zur hexadezimalen Schreibweise tendieren (weil sie einfach kürzer ist).
Ach ja: Um unterscheiden zu können, auf bezüglich welcher Basis die Zahl dargestellt wird, schreibt man in der Programmiersprache C bei Binärzahlen ein 0b und bei Hexadezimalzahlen ein 0x davor (Genau genommen ist das 0b eine GCC-Erweiterung). Im normalen Sprachgebrauch wird oft auch ein "d" "h" oder "b" angehängt, also: 42d = 2Ah (Die Kleinschreibung macht den Unterschied!) = 101010b
Äh ja, und zur Basis: Im Dezimalsystem ist die Basis 10, jede Stelle ist also 10 Mal so stark gewichtet wie ihr Vorgänger (42 = 4*10 + 2*1). Im Binärsystem verdoppelt sich der Wert jeder Stelle (42 = 1*32 + 0*16 + 1*8 + 0*4 + 1*2 + 0*1), im Hexadezimalsystem wird mit vielfachen von 16 multipliziert (42 = 2*16 + 10*1)
mfG
Markus
Hui, hier hat sich aber viel getan^^
RichtigZitat:
Achso, das heißt, wenn man es genau nimmt steuere ich eine led mit einem schalter dann binär an --> ein und aus
Der einzige Unterschied zwischen den Zahlensystemen ist ja der, dass es mehr oder weniger verschiedene Ziffern hat. Allerdings kann der Mikrocontroller nur 2 Ziffern, nämlich 0 und 1. Damit der Mikrocontroller aber auch höhrere Zahlen als 1 Verarbeiten kann, fasst man mehrere solcher "Bits" (Ein Bit ist quasi ein "Schalter" der entweder 0 oder 1 sein kann) zu einer neuen Zahl zusammen.Zitat:
Wie kann man das hex-system dann verstehen?
So besteht z.B. eine Hexadezimalziffer aus 4 Dualziffern. Man braucht so viele Dualziffern, weil diese nur so wenig verschiedene Zustände haben (0/1). Eine Hexadezimalziffer dagegen hat 16: 0123456789ABCDEF
(Weil man 10, 11, 12 usw. ja nicht in einer Ziffer schreiben kann, nimmt man dafür einfach Buchstaben).
Und so kann man mit 4 Dualziffern eine Hexadezimalziffer speichern:
Hex - Dual:
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
A - 1010
B - 1011
C - 1100
D - 1101
E - 1110
F - 1111
Und das sind jetzt die 16 verschiedenen Möglichkeiten.
Du könntest jetzt also mit einer Hexadezimalziffer z.B. den Zustand von 4 LEDs speichern. Aber es macht keinen Unterschied ob du bei Programmieren jetzt 0x9 (Hexadezimal) oder 0b1001 (Binär/Dual) schreibst, im Controller drin wird eh wieder alles gleich verarbeitet.
Zur Umrechnung von Zahlensystemen habe ich hier etwas gefunden. Der Vorteil dieser Seite ist das es eine Erklärung dazu gibt das man es nachrechnen kann. Wenn man ersteinmal weiß wie man die einzelnen Zahlensysteme umrechnet ist es relativ leicht.
MfG Hannes
Hey
okay, eigendlich ist das ganze ja logisch... Habe mithilfe einer kleinen nachhilfe angefangen zu lernen, allerdings verstehe ich zu 80% nur bahnhof, ich hoffe, das ändert sich noch.
MfG
Michael
Wer nicht fragt bleibt dumm!
mfG
Markus
Ich habe leider nur ein Beispiel in "Plattdeutsch" gefunden.. http://www.c64-wiki.com/index.php/Mnemonic bei dem gezeigt wird wie der Menonic für
LDA,H42....... Lade Daten Register A mit Hex Wert 42 in Maschinen lesbaren code gewandelt wird. Etwas genauer wird es hier erklärt
http://de.wikipedia.org/wiki/Maschinensprache
Gruß Richard
An alle die online sind, brauche dringend ne Antwort auf diese Frage! Danke! https://www.roboternetz.de/community...279#post537279