Wie schiebt man in c im Kreis

Gast #2744220
Lesenswert?

Hallo,

ich möchte in einem Kreis/Ring schieben, d.h. wie mit dem >> Operator 
nur dass das herausgeschobene Bit auf der anderen Seite wieder 
reingeschoben wird. Prozessor ist ein Atmel wenn das von Bedeutung ist.

Gibts da eine schnelle Lösung / Befehl?
Oder muss man das Bit abfragen dann schieben und per Hand wieder 
einfügen

z.B. so
if (0x80 & variable) ((variable << 1) + 1); else (variable << 1);
(nicht ausprobiert ... aber so in der Art)

Danke
Gast #2744221
Lesenswert?

sorry Programmiersprache ist C, mit Assembler würde es ja einen Befehl 
gehen. Viell. mit dem einem Inlineassemblerbefehlt, aber dann wüsste 
nicht wie ich auf meine Variable names variable zugreifen müssen.
#2744274
Lesenswert?

haha schrieb:
> ich möchte in einem Kreis/Ring schieben, d.h. wie mit dem >> Operator
> nur dass das herausgeschobene Bit auf der anderen Seite wieder
> reingeschoben wird. Prozessor ist ein Atmel wenn das von Bedeutung ist.

Da es von Atmel viele verschiedene Architekturen gibt, ist der 
Hersteller alleine nicht von Bedeutung.

> Gibts da eine schnelle Lösung / Befehl?

In C gibt es da nichts einfaches. Entweder mußt du inline assembler 
nutzen, oder es eben so machen:

> Oder muss man das Bit abfragen dann schieben und per Hand wieder
> einfügen

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