C++程序 旋转数字的位数
位旋转:旋转(或循环移位)是一种类似于移位的操作,但掉落的位在一端重新放回另一端。
在左旋转中,落在左端的位转到右端。
在右旋转中,落在右端的位转到左端。
例子:
假设 n 存储了 8 位。向左旋转3个单位 n = 11100101,得到 n = 00101111(左移3个单位并把前3个放回最后)。如果 n 存储了16位或32位,则 n 的左旋转(000…11100101)变成00..00 11100101 000。
向右旋转3个单位 n = 11100101,得到 n = 10111100(右移3个单位并把后3个放回最前),如果 n 存储了8位,则 n 的左旋转(000…11100101)变成 101 000..00 11100 。
输出
时间复杂度: O(1)
辅助空间: O(1)