69,370
社区成员
发帖
与我相关
我的任务
分享
mov eax,FirstValue
mov ebx,(1 shl 31)
mov SecondValue,0
l1:test eax,1
jz l2
add SecondValue,ebx
l2:shr ebx,1
shr eax,1
jnz l1
#include <stdio.h>
int revse32int(int a,int len)//len是要旋转的数字位数,从右侧起
{
int tmp=0,i,j;
for(i=0,j=len-1;i<len;++i,--j)
{
if((a>>i)&1)
tmp|=((a>>i)&1)<<j;
}
return tmp;
}
int main(void)
{
int a=0x18b;
printf("%x\n",a);
printf("%x\n",revse32int(a,9));
getchar();
return 0;
}
int revse32int(int a)
{
int tmp=0;
a = a<<8;
tmp |= ((a & 0xff000000)>>24);
tmp |= ((a & 0x00ff0000)>>8);
tmp |= ((a & 0x0000ff00)<<8);
tmp |= ((a & 0x000000ff)<<24);
return tmp;
}