#include <stdio.h>
int x(int value)
{
int a[32]={0},i=0,k; //定義數組儲存每個2進制位,初始化爲0
while( value )
{
if( (value & 1)== 0 ) //&1相當於%2
a[i] = 0;
if( (value & 1)== 1 )
a[i] = 1;
value = value/2;
i++;
}
for(k=0;k<32;k++)
{
printf("%d",a[k]); //輸出數組即翻轉
}
return 0;
}
int main()
{
x(25); //調用函數
return 0;
}
編寫函數
unsigned int reverse_bit(unsigned int value);
這個函數的返回值吧value的二進制位模式從左到右翻轉後的值。
如在32位機器上25這個值包含下列各位:
00000000000000000000000000011001
翻轉後:(2550136832)
10011000000000000000000000000000