Forum: Mikrocontroller und Digitale Elektronik Hexadezimal - für Dummys


von ABSimon (Gast)


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

von Andreas K. (ergoproxy)


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.

von Falk B. (falk)


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

von ABSimon (Gast)


Lesenswert?

Super, Vielen fürs schnelle und tolle Feedback.

Mfg
ABSIMON

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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 :-)

von Falk B. (falk)


Lesenswert?

@  Lothar Miller (lkmiller)

>> Vorn, führende Nullen werden weggelassen.
>Wie in allen anderen bei uns gebräuchlichen Zahlensystemen auch ;-)

Sag das mal den Leuten, die das Gerberformat erfunden haben :-0

MFG
Falk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Falk Brunner wrote:
>>> Vorn, führende Nullen werden weggelassen.
>>Wie in allen anderen bei uns gebräuchlichen Zahlensystemen auch ;-)
> Sag das mal den Leuten, die das Gerberformat erfunden haben :-0
Ja, Sachen gibts.

von fgutm (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.