#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
编写简单函数:让一个无符号数的二进制码按位反转,即1->32,32->1;
原文地址:http://xmwen1.blog.51cto.com/10730069/1706063