位运算

来源:互联网 发布:qq引流软件下载 编辑:程序博客网 时间:2024/05/17 01:03

问题: 输入一个32位无符号整数,将该数对应的二进制位翻转,输出翻转后的二进制数对应的十进制值。

#include<stdio.h>unsigned int bit[32]; int main(){unsigned int ans;int i,k,x,n;bit[0]=1;for(i=1;i<32;i++)bit[i]=bit[i-1]<<1;scanf("%d",&n);while(n--){scanf("%d",&x);k=0;ans=0;while(x){if(x&1)ans|=bit[31-k];k++; x>>=1;}printf("%u\n",ans); } }     /*输入示例 501234输出示例0214748364810737418243221225472536870912*/        


0 0