#include<stdio.h>
unsigned int reverse_bits(unsigned int value);
int main(){
unsigned int num=25;
printf("'%u' --> '%u'.\n",num,reverse_bits(num));
return 0;}
//取出最低位然后向高位排列推进,位移可用/2 or *2代替
unsigned int reverse_bits(unsigned int value){
unsigned int res_value=0;
for(unsigned int i=1;i;value>>=1,i<<=1)
res_value=(res_value<<1)+(value&1);
return res_value;}