Forum: Mikrocontroller und Digitale Elektronik Schreibweise


von Tobi P. (Gast)


Lesenswert?

Hallo . Ich habe folgendes kleines Problem. Wie ist folgender Code zu 
verstehen ?

// Initialisierung des Identifier (ID=0x123)
   CANIDT1 = 0x123 >>3;                  // Zuweisung ID-Bit 10 - 3
   CANIDT2 = 0x123 <<5;

Wie würde das Register dann binär aussehen ?

von Karl H. (kbuchegg)


Lesenswert?

SChreib dir 0x123 binär auf und dann

    0x123 >>3
verschiebst du die Bits um 3 Stellen nach rechts

    0x123 <<5
um 5 Sellen nach links

von Tom (Gast)


Lesenswert?

0x123 ist b '0001 0010 0011'

das wäre ja bei >>3
b'0000 0010 0100'

und bei <<5
b'0100 0110 0000'


Meine Annahme ist richtig oder?

von Karl H. (kbuchegg)


Lesenswert?

Tom schrieb:
> 0x123 ist b '0001 0010 0011'
>
> das wäre ja bei >>3
> b'0000 0010 0100'
>
> und bei <<5
> b'0100 0110 0000'
>
>
> Meine Annahme ist richtig oder?

Im Prinzip ja.
Allerdings: 0x123 sind 4 Nibbles und nicht 3

  0x123 ist b '0000 0001 0010 0011'

Auch in Hex kann man natürlich die führenden 0 weglassen, aber ratsam 
ist es nicht. Es gibt nun mal keine ungerade Anzahl an Nibble und 0x123 
verwirrt mehr, als es gut ist. Schreib 0x0123 und dann ist alles klar.

von Tobi P. (Gast)


Lesenswert?

OK. Ich glaub ich habs kapiert.. Dankeschön!

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.