#include <stdio.h>
#define uchar unsigned char
int main()
{
uchar i = 0x0F;
unsigned long long j = 0x0F;
printf("%d,",sizeof(long long));
printf("%ld,",j<<32);
printf("%#016x,",j<<32);
printf("%#016x,",i<<40);
printf("%#016x,",-1L);
printf("%#016x,",-4);
printf("%#016x,",4);
printf("%#016x,",(-4<<1)>>1);
unsigned short k = 0xFF;;
printf("\n\n\n%#016x,",k<<40);
printf("%#016x,",k>>40);
short l = -1;;
printf("\n\n\n%#016x,",k<<40);
printf("%#016x,",k);
int m = -2;;
printf("\n\n\n%#016x,",m<<40);
printf("%#016x,",m>>32);
return 0;
//似乎有些类型不会溢出而是循环,仿佛位移运算符号的单元是一个int32或者usigned int32
}
8,0,0000000000000000,0x00000000000f00,0x000000ffffffff,0x000000fffffffc,0x00000000000004,0x000000fffffffc,
0x0000000000ff00,
--------------------------------
Process exited after 0.01545 seconds with return value 0
请按任意键继续. . .