通过课程进入 题号:10 13.17 循环左移和循环右移 语言要求:C++编写一个程序,输入两个整数i、j,如果j的值大于0,则将i循环左移j位;
如果j的值小于0,则将i循环右移j位,最后输出i的值。
输入输出格式要求:
输入格式:i j回车
i j 均用int类型存储。
只输出运算结果,请不要输出其他字符
例如:
输入:3 10回车
输出:3072
输入:-65535 -2回车
输出:2147467264
循环移位就是把数值变成二进制,然后循环移动的过程。
换句话说,循环移位就是将移出的低位放到该数的高位(循环右移)或把移出的高位放到该数的低位(循环左移),左移,和右移动都是对整数进行的操作,在Win32控制台应用程序中,整形占4Byte节32bit。
循环左移的过程可以分为3步:
1、将x左端的n位先移动到y的低n位中,x>>(32-n);
2、将x左移n位,其右面低位补0,x