#include <stdio.h>
#include <stdint.h>
int main()
{
uint32_t a = 0xF0FF1FFF;
printf("a = 0x%x\n",a);
uint16_t b = a;
printf("b = 0x%x\n",b);
int32_t c = 0xF0FF8FFF;
printf("c = 0x%x\n",c);
int16_t d = c;
printf("d = 0x%x\n",d);
int32_t e = d;
printf("e = 0x%x\n",e);
return 0;
}
output:个
a = 0xf0ff1fff
b = 0x1fff
c = 0xf0ff8fff
d = 0xffff8fff
e = 0xffff8fff
在本例中,为什么d
打印32位而不是b
?