您当前的位置: 首页 >  c++

征战蓝桥 —— 2016年第七届 —— C/C++A组第5题——消除尾一

发布时间:2019-03-15 21:35:32 ,浏览量:0

题目

下面的代码把一个整数的二进制表示的最右边的连续的1全部变成0 如果最后一位是0,则原数字保持不变。

如果采用代码中的测试数据,应该输出: 00000000000000000000000001100111 00000000000000000000000001100000 00000000000000000000000000001100 00000000000000000000000000001100

请仔细阅读程序,填写划线部分缺少的代码。

#include  void f(int x) { int i; for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1); printf("   "); x = _______________________; for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1); printf("\n"); } int main() { f(103); f(12); return 0; } 

注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。

代码
#include  void f(int x) { int i; for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1); printf("   "); x = x&(x+1); for(i=0; i<32; i++) printf("%d", (x>>(31-i))&1); printf("\n"); } int main() { f(103); f(12); return 0; } 
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    109889博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.4173s