eg:
在32位機器上25這個值包含下列各位:
00000000000000000000000000011001
翻轉(zhuǎn)后:(2550136832)
10011000000000000000000000000000
程序結(jié)果返回:
2550136832
代碼核心思想是將原來二進制序列最后一位看作反轉(zhuǎn)后第一位,將原來二進制序列第一位看作反轉(zhuǎn)后最后一位進行重新計算
比如15的2進制為 ……0000 1111
計算方法為
12^1 + 12^2 + 12^3 + 12^4
反轉(zhuǎn)后為1111 0000……
計算方法為
12^31+12^30+12^29+12^28
源代碼:
#include
#include
#include
unsigned int reverse_bit(unsigned int value)
{
int i=0,sum=0;
for (i = 0; i < 32;i++)
{
sum+=((value>> i) &1) * (int)pow(2, 31 - i);//反轉(zhuǎn)后依次每位二進制序列重新計算
}
return sum;
}
int main()
{
int n = 25,result;
result=reverse_bit(n);
printf("%u", result);
system("pause");
return 0;
}
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。