您的位置:首页 > 其它

编写简单函数:让一个无符号数的二进制码按位反转,即1->32,32->1;

2016-05-29 22:49 274 查看
#include<stdio.h>
#include<stdlib.h>
unsigned int reverse_bit(unsigned  x)
{
unsigned int a;
unsigned int b=1,i,t;
a = n&b;      //按位或
for (i = 0; i < 31; i++)
{
a <<= 1;        //左移
n >>= 1;        //右移
t = n&b;
a = a | t;
}
return a;         //返回反转后的数
}
int main()
{
unsigned int  value;
printf("请输入您想要反转的数:");
scanf("%d", &value);
printf("反转后的数为:%d\n", reverse_bit(value)); //调用反转函数并输出
system("pause");
return 0;
}
本文只是在下在学习过程自己的想法,只能实现简单功能,可能还没考虑到程序的优化,与大神写出来的代码还有一定差距,如果那位大神发现了问题,请您不吝赐教,如果您还有更好的方法,不妨分享分享,谢谢!

本文出自 “分享中进步” 博客,请务必保留此出处http://xmwen1.blog.51cto.com/10730069/1706063
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: