Circular shift . Hoe doe ik dit ?

ik ben nog steeds bezig met de McWorthy cursus.
Nu geeft hij als "huiswerk" om een circular left en circular right shift moet maken.

Kan iemand tips of uitleg geven hoe ik dit voor elkaar krijg ?

Een verschuiving van bits in een variabele of gegevens in een array?

in een variable dat dit als value heeft : 0x10101010.
Als voorbeeld

Voor een shift links

  1. Sla het meest significante bit ((ocatie 7 als het om een byte gaat) op in een tijdelijke variable.
  2. Schuif een plaas naar links naar links (<<) of vermenigvuldig met twee.
  3. Plaats het opgslagen bit in de vrijgekomken plaats (locatie 0) met een logische binaire OR.

Voor een shift rechts

  1. Sla het minst significante bit (bit 0) op in een tijdelijke variable.
  2. Schuif een plaats naar rechts naar links (>>) of deel door twee.
  3. Plaats het opgslagen bit in de vrijgekomen plaats (locatie 7 als het om een byte variabele gaat) met een logische binaire OR.

Dank je .
Ik zag ook dit , wat eigenlijk hetzelfde doet

variable = (variable << 1) | (variable >> 7) 

Eens goed op papier kijken hoe de or dan werkt.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.