/*
函数目的,将unsigned int类型的数据进行按位调换,0bit调换到31bit,31bit调换到0bit
*/
#include <stdio.h>
typedef unsigned int u32;
u32 rever(u32 num)
{
u32 index = 1;
u32 ver = 0,loop = 0,result=0;
for (loop = 0;loop < 32;loop++)
{
index = 1 << loop;
ver = num & index;
if (ver != 0)
{
result |= (1 << (31 - loop));
}
}
return result;
}
int main()
{
u32 n = 0;
printf("input your num:");
scanf("%x",&n);
printf("\n rever(n) = 0x%x\n",rever(n));
return 0;
函数目的,将unsigned int类型的数据进行按位调换,0bit调换到31bit,31bit调换到0bit
*/
#include <stdio.h>
typedef unsigned int u32;
u32 rever(u32 num)
{
u32 index = 1;
u32 ver = 0,loop = 0,result=0;
for (loop = 0;loop < 32;loop++)
{
index = 1 << loop;
ver = num & index;
if (ver != 0)
{
result |= (1 << (31 - loop));
}
}
return result;
}
int main()
{
u32 n = 0;
printf("input your num:");
scanf("%x",&n);
printf("\n rever(n) = 0x%x\n",rever(n));
return 0;
}
经过实际测试,对于usigned int类型完全符合预期。但是对于 < 0的int类型,暂时还没有实现