Hzu挑战自我


私信TA

用户名:gxhzxyjsj

访问量:98799

签 名:

2024终究会过去,期待2025!

等  级
排  名 8
经  验 27865
参赛次数 67
文章发表 157
年  龄 0
在职情况 教师
学  校 贺州学院
专  业 软件工程

  自我简介:

弱鸡一个,继续努力!

解题思路:完全是位运算,如果懂得位运算,非常简单,我写的方法是一种比较简单的方法了。

注意事项:

参考代码:

#include <stdio.h>
int main()
{
    unsigned int a,b;
    int i,n;
    scanf("%u%d",&a,&n);
    for(i=1;i<=n;i++)
    {
        b=a & 1;//取最后一位
        a=a>>1; //右移,舍掉最后一位
        if(b==1) //如果最后一位为1
            a=a | 0x80000000;//则把a的最前面一位变成1,从而实现循环移位
    }
    printf("%u\n",a);
    return 0;
}


 

0.0分

12 人评分

  评论区

b=a & 1;//取最后一位

        a=a>>1; //右移,舍掉最后一位

        if(b==1) //如果最后一位为1

            a=a | 0x80000000;//则把a的最前面一位变成1,从而实现循环移位

刚学位运算 表示看不懂。。。能详细解释一下吗
2019-04-05 15:45:53
  • «
  • 1
  • »