如图,编写一个程序,将一个无符号整数循环右移n位后输出。
Code:
// 无符号整数s
unsigned int s=1;
// 移动n位
int n=1;
// 1 Byte = 8 bit
int size=sizeof(s)*8;
// 如果右移位数等于bit数
// 则相当于没有移动
n=n%size;
// 右移
// | 左边:循环右移来到头部的部分
// | 右边:循环右移没有来到头部的部分
s=(s<<(size-n)|(s>>n));
// 输出
cout<<s<<endl;