A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写一个移位函数,使移位函数既能循环左移又能循环右移。参数n大于0时便是左移,参数n小于0时便是右移
nsigned move(unsigned value, int n)
{
    unsigned z;
   
    if (n > 0) {
        //        循环左移
        z = (value >> (32 - n)) |(value << n);
    }else
    {
        //        循环右移
        n = -n;
        z = (value << (32 - n)) |(value >> n);
        
    }
   
    return z;
}
int main(int argc, const char * argv[])
{
   
    unsigned a;
    int n;
    printf("请输入一个八进制输:\n");
    scanf("%d", &a);
    printf("请输入要移位的位数:\n");
    scanf("%d", &n);
    printf("移位后的结果是:%o\n", move(a, n));
    return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马