Het natuurlijk getal $$(19)_{10}$$ (decimale voorstelling) kan geschreven worden als $$(10011)_2$$ in het binair talstelsel. Dit laat ons toe om de rotatie naar rechts van een natuurlijk getal te definiƫren als de bewerking waarbij het laatste cijfer vooraan geplaatst wordt in de binaire voorstelling van het getal. Als we op die manier het binair getal $$(10011)_2$$ naar rechts roteren, dan bekomen we het binair getal $$(11001)_2 = (25)_{10}$$. Een gegeven natuurlijk getal kan ook $$n$$-voudig naar rechts geroteerd worden. In dat geval worden $$n$$ opeenvolgende rotaties naar rechts uitgevoerd op de binaire voorstelling van het getal. De 4-voudige rechtse rotatie van het getal 19 is dan gelijk aan 7, zoals kan afgeleid worden uit de onderstaande rotatiereeks.

$$19$$ $$\stackrel{\text{r}}{\longrightarrow}$$ $$25$$ $$\stackrel{\text{r}}{\longrightarrow}$$ $$28$$ $$\stackrel{\text{r}}{\longrightarrow}$$ $$14$$ $$\stackrel{\text{r}}{\longrightarrow}$$ $$7$$
$$10011$$ $$11001$$ $$11100$$ $$01110$$ $$00111$$

Als na een ($$n$$-voudige) rotatie naar rechts een aantal nullen vooraan een binair getal komen te staan, dan mogen die weggelaten worden.

De omgekeerde bewerking, waarbij het eerste cijfer in de binaire voorstelling van een natuurlijk getal achteraan geplaatst wordt, wordt dan logischerwijs de rotatie naar links van het getal genoemd. Analoog als bij de rotatie naar rechts, wordt ook de $$n$$-voudige rotatie naar links gedefineerd als het herhaald uitvoeren van de rotatie naar links. De $$4$$-voudige linkse rotatie van het getal 357 is dan 91, zoals kan afgeleid worden uit de onderstaande rotatiereeks.

$$357$$ $$\stackrel{\text{l}}{\longrightarrow}$$ $$203$$ $$\stackrel{\text{l}}{\longrightarrow}$$ $$406$$ $$\stackrel{\text{l}}{\longrightarrow}$$ $$301$$ $$\stackrel{\text{l}}{\longrightarrow}$$ $$91$$
$$101100101$$ $$011001011$$ $$110010110$$ $$100101101$$ $$001011011$$

Invoer

De invoer bestaat uit twee regels, waarvan de eerste regel een getal $$g \in \mathbb{N}$$ bevat, en de tweede regel een getal $$n \in \mathbb{N}$$.

Uitvoer

Voer een $$n$$-voudige rotatie uit van het getal $$g$$, en schrijf alle tussenstappen uit. Indien $$n$$ positief is moet een rotatie naar rechts uitgevoerd worden, voor negatieve $$n$$ moet een rotatie naar links uitgevoerd worden. De tussenstappen die moeten uitgeschreven worden zijn:

Tip: ga na hoe de ingebouwde Python functies bin en int kunnen gebruikt worden om de decimale voorstelling van een natuurlijk getal om te zetten naar zijn binaire voorstelling, en omgekeerd.

Voorbeeld

Invoer:

19
4

Uitvoer:

19
10011
111
7

Voorbeeld

Invoer:

357
-4

Uitvoer:

357
101100101
1011011
91