Hexadezimal - für Dummys

Gast #1041157
Lesenswert?

Hallo Zusammen,

zwei Dummy Frage, kann ich anstelle von
    DDRA  = 0xff;
auch
    DDRA  = 11111111;

schreiben? Und ist

    DDRC  = 0x3f;

11001111 oder 00111111.

Mein Hexadezimal Rechner zeigt für 3 "11" an, ich
weiß aber nicht wo jetzt die Null aufgefüllt werden.
Sollen ja jeweil 4 Stellen sein.

Auf sooo0 einfach Fragen finde ich im Forum leider
keine entsprechenden Threads.

Vielen Dank & Viele Grüße
ABSimon
#1041162
Lesenswert?

Nein kannst du nicht du hast was vergessen ^^

0xFF = 0b11111111 = 255

Also

DDRA = 0xFF;
ist das selbe wie
DDRA = 0b11111111;
oder
DDRA = 255;

Und 0x3F sind 00111111

du kannst das in 4er Blöcke teilen F = 1111 und 3 = 0011 bzw 11 was zum 
rest des Blocks fehlt wird wie bei einer normalen zahl mit ner 0 
ergänzt:

z.b. du willst eine Zahl in der länge 4 Ziffern ohne Komma:

die Zahl 25 wäre somit 0025 ohne das der wert sich ändert.
#1041166
Lesenswert?

@ ABSimon (Gast)

>zwei Dummy Frage, kann ich anstelle von
>    DDRA  = 0xff;
>auch
>    DDRA  = 11111111;

Nein, wenn dann 0b11111111, das kann aber nicht jeder C-Compiler, der 
AVR-GCC kann es.

>schreiben? Und ist

>    DDRC  = 0x3f;

>11001111 oder 00111111.

0b00111111

>Mein Hexadezimal Rechner zeigt für 3 "11" an, ich
>weiß aber nicht wo jetzt die Null aufgefüllt werden.

Vorn, führende Nullen werden weggelassen.

MFG
Falk
Moderator (Firma: Titel) Persönliche Seite #1041288
Lesenswert?

> Vorn, führende Nullen werden weggelassen.
Wie in allen anderen bei uns gebräuchlichen Zahlensystemen auch ;-)
Als Beispiel könnte hier das bekannte 10er-System dienen:
vorne angefügte Nullen ändern nichts am Wert.

Allerdings muß man hier beim C-Programmieren etwas aufpassen: Wenn hier 
vorne eine Null angefügt wird, dann bedeutet dies: Oktal-System.
Wenn kein Prefix (in C: 0x..., 0b..., 0...) oder Postfix (z.B. manche 
Assembler ...h oder ...b) angegeben ist, wird automatisch das 
Default-Zahlensystem (das 10er-System) verwendet.


> DDRA  = 11111111;
Das wäre dann (weil 10er-System) das selbe wie
 DDRA  = 0xA98AC7;
und das passt nicht in 1 Byte ;-)

Binär ausgedrückt wäre
> DDRA  = 11111111;
übrigens dann
DDRA  = 0b101010011000101011000111;
Aber das nur der Vollständigkeit halber :-)
Gast #1041487
Lesenswert?

wer's trotzdem versucht wird früher oder später seine Erfahrung mit der 
Oktalkeule machen!

nur kurz:
1
$ und 0x leiten  hexadezimale Zahlen
2
(nix)            dezimale Zahlen
3
führende Nullen  oktale Zahlen
4
und 0b           binäre Zahlen ein

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren