編寫簡單函數:讓一個無符號數的二進制碼按位反轉,即1->32,32->1;

#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;
}

本文只是在下在學習過程自己的想法,只能實現簡單功能,可能還沒考慮到程序的優化,與大神寫出來的代碼還有一定差距,如果那位大神發現了問題,請您不吝賜教,如果您還有更好的方法,不妨分享分享,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章