Forum: Mikrocontroller und Digitale Elektronik Mit welchem Befehlt shiftet man rechts ohne "Einsen"


von John (Gast)


Lesenswert?

Hallo,

folgendes:

uint8_t hallo;

hallo=0;
PORTB=hallo;
PORTB=(hallo>>4);

dann folgt als Ausgabe: 0  und eben 0b11110000;

welches Befehl gibt es,der auch 0 dann lässt ( also Nullen nachschiebt)

Gruß

John

von Michael (Gast)


Lesenswert?

hä? Ergenis ist 00001111, und was hättest du gerne?

von Andreas K. (a-k)


Lesenswert?

Genau so, es sollten Nullen nachgeschoben werden. Wenn was anderes dabei 
rauskommt, ist das falsch.

Mehr Info: Welcher Compiler? Compilierbarer Code mit ebendiesem Problem, 
nicht bloss 3 Zeilen.

von Karl (Gast)


Lesenswert?

.... kann es sein, dass Du char geschiftet hast  -  der war größer als 
127 und wurde damit als signed erkannt und somit korrekt mit Einsen 
ergänzt!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Mit welchem Befehlt shiftet man rechts ohne "Einsen"

 lsr  ;-)

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.