69,368
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main()
{
printf("%hx\n",~0);
printf("%hx\n",~0u);
printf("%hx\n",~0>>1);
printf("%hx\n",~0u>>1);//这行为什么得不到7fff
printf("%hx\n",0xffff>>1);//这行得到的为什么是7fff
printf("%hx\n",0xffffu>>1);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%x\n",~0);
printf("%x\n",~0u);
printf("%x\n",~0>>1);
printf("%x\n",~0u>>1);//这里~0u >> 1 == 0x7ffffffff; 但是楼主只显示了低2字节,所以应该用%x而不是%hx
printf("%x\n",0xffff>>1);//32位的话0xffff相当于0x0000ffff; 0x0000ffff >> 1 == 0x00007ffff;
printf("%x\n",0xffffu>>1);
system("pause");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%x\n",~0);
printf("%x\n",~0u);
printf("%x\n",~0>>1);
printf("%x\n",~0u>>1);
printf("%x\n",0xffff>>1);//32位的话0xffff相当于0x0000ffff
printf("%x\n",0xffffu>>1);
system("pause");
return 0;
}