PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro Begrifferläuterung



sproe
05.12.2014, 12:17
Hallo Community,
ich habe eine Frage zu einem Programm, welches ich hier im Forum gefunden habe.
29447

was bedeuten die 0x01 oder 0x02 ?

vielen dank

PICture
05.12.2014, 12:43
Hallo!

Ich habe fast k.A. über Asuro, aber 0xnn ist für mich eine zweistellige Hexadezimale Zahl von 00h bis FFh und 0x davor wird als Kennzeichen fur Hexzahl (anstatt h) benutzt. Fazit: 0x01 = 1h bedeutet 1d, 0x02 = 2h also 2d und 0xFF eben 256(d)ezimal.

sproe
05.12.2014, 13:00
hmm.. verstehe ich nicht so ganz , entschuldige:(

oberallgeier
05.12.2014, 13:04
... Fazit: 0x01 = 1h bedeutet 1d, 0x02 = 2h also 2d und 0xFF eben 256(d)ezimal.Korrektur, leider.
0xFF ist die hexadezimale Zahl für dezimal 255.

Ergänzung:
-) der Computer rechnet mit Dualzahlen. Diese bestehen aus Ziffern mit den Werten 0 oder 1.
-) Eine einzelne Dualziffer ist ein Bit (ein "Biss-chen")
-) größere Zahlen werden z.B. als Byte dargestellt, das ist eine Folge von 8 Bits.
-) diese Dualzahlen sind im Prinzip wie die Dezimalzahlen aufgebaut. Die Basis ist aber nicht ne Potenz von zehn sondern von 2.
-) in der Dualzahl 0000 0101 steht das erste, das ganz rechte Bit für die nullte Potenz von 2, das ist eine Eins, die dritte von rechts ist sinngemäß die zweite Potenz von 2, also 4. Diese Dualzahl (gelegentlich als 0b00000101 geschrieben - b für binär) hat also den wert von 1 plus 4 - gleich fünf.
-) die Dualzahl ist lang und schlecht lesbar. DESHALB hat sie irgendjemand mal in zwei Hälften - in zwei Nibbel - aufgeteilt. Diese beiden Hälften wurden in Ziffern zur Basis Sechzehn (16, hexadezimal) dargestellt, in die Werte 0 bis F .. 0=0 ... 9=9, 10=A, 11=B, 12=C ... 15=F. Die Zahl oben ist also hexadezimal 0x04. Sprich: das linke Nibbel wird so behandelt, als sei es selbst eine Binärzahl zwischen 0 ... 15.
-) Beispiel: 0b0100 1100 => dritte von rechts: 2^2=4, vierte 2^3=8 - also zusammen 12, siebente von rechts : 2^6=64 ABER wenn ich NUR das Nibbel, nur diese linke Hälfte betrachte, dann ist dessen Wert 2^2=4. Nun haben wir alles für die hexadezimale Zahl:
-) 0b0100 1100 wird zu 0x4C (hex 4C oder dezimal 76).
-) Und nun kommt ein kleiner Gedankensprung: um das linke Nibbel in einen "ordentlichen" Dezimalwert zu übersetzen muss man seinen Nibbelwert - hier also dezimal 4 - mit sechzehn multiplizieren. das gibt die 64. Dazu die 12 vom rechten Nibbel - macht 76.

Klar, klingt alles s..kompliziert. Das gibt sich *gg*

Siehe auch hier Dualzahlen (klick) (http://de.wikipedia.org/wiki/Dualsystem) und Deine eigentliche Frage Hexadezimalsystem (klick) (http://de.wikipedia.org/wiki/Hexadezimalsystem)

Ok??

PICture
05.12.2014, 13:38
Korrektur, leider. 0xFF ist die hexadezimale Zahl für dezimal 255.

Schon wieder ein Zeichen, dass ich älter werde. Herzlichen Dank fürs Korriegieren. :D

Siehe eventuell das noch dazu: http://rn-wissen.de/wiki/index.php/PIC_Assembler#Bit.2C_Byte.2C_Nibble.2C_Bin_und_Hex .

sproe
05.12.2014, 13:50
Vielen Dank erstmal für die Information
Aber was bedeutet das im Zusammenhang mit dem Code?

PICture
05.12.2014, 13:58
Einfach Zahlen in Befehlen.

markusj
05.12.2014, 14:53
Vielen Dank erstmal für die Information
Aber was bedeutet das im Zusammenhang mit dem Code?

Wenn du dir die Definition der Hexadezimalzahlen nochmal ansiehst stellst du fest: 0x01 ist 1, 0x02 ist 2, 0x04 ist 4, 0x08 ist 8, 0x10 ist 16 etc. - Kurz: 2^0, 2^1, 2^2 etc.
Das ist also genau der Zahlenwert, den die einzelnen Bits in der Variable "sw" darstellen. Die Zahlen werden als Bitmaske verwendet, das bedeutet, es werden aus "sw" genau die Bits betrachtet, die in der Maske gesetzt sind, im Beispiel von 0x08 ist das das vierte Bit (Wert 2^3 = 8, das niedrigste Bit ist 2^0 = 1). Durch die "und"-Verknüpfung von "sw" und 0x08 bleibt also nur besagtes Bit stehen, wenn es auch in "sw" gesetzt war.

mfG
Markus

oberallgeier
05.12.2014, 15:21
... Aber was bedeutet das im Zusammenhang mit dem Code?Markus hat es ja schon vorgestellt. Hier gibt es (http://www.mikrocontroller.net/articles/Bitmanipulation#Bitmaske) ein paar Beispiele dazu, die veranschaulichen, was bei Bitmanipulationen geschieht.