在Python中循环移位(或旋转)数字的数字

Tan*_*ary 3 python bit-shift digits

假设我有以下输入:

1234
Run Code Online (Sandbox Code Playgroud)

如何获得以下输出?

3412
Run Code Online (Sandbox Code Playgroud)

这是通过循环移位(或旋转)输入的数字两次获得的.

我试过以下代码:

number = 1234
bin(number >> 1)
Run Code Online (Sandbox Code Playgroud)

但它没有产生我期待的结果.

kal*_*ann 6

>>运营商做一个二进制位位移.

它将位置的二进制表示移动1234到右侧,丢弃最右侧(最不重要)位.

因此,您的代码不会导致3412.

你可能想要字符串旋转:

>>> def rotr(string, n):
...     return string[n:] + string[:n]
... 
>>> rotr("1234", 2)
'3412'
Run Code Online (Sandbox Code Playgroud)

您也可以在之后将其转换回整数

>>> int('3412')
3412
Run Code Online (Sandbox Code Playgroud)