移位输出问题
void main(){
int a=2;
printf("%d ",2>>32);
printf("%d",a>>32);
}
结果不一样.......
2011-04-19 22:37
2011-04-20 00:09
2011-04-20 08:12
printf("%x ", 2 >> 32); push 0printf("%d ", a >> 32); mov eax, dword ptr [ebp-4] ;从运行栈中取出临时变量a 送往eax (eax) = 2
printf("%d ", 2>>1); push 1for (i=32; i>=1; --i)mov dword ptr [ebp-8], 20h
{
(a<<4);
} jmp main+4dh (0040b7bd)printf("%d ", a); mov ecx, dword ptr[ebp-4]a = (a<<4);mov ecx, dwrod ptr[ebp-4]
程序代码:#include <stdio.h>
void main()
{
int a=2;
printf("%d ",2>>32);
printf("%d ",a>>32);
a = (a>>32);
printf("%d ", a);
}
// printf("%d ", 2>>1);
/* for (i=32; i>=1; --i)
{
a = (a>>3);
}
printf("%d ", a);*/输出结果:
2011-04-20 08:57
2011-04-20 10:25