c语言中unsigned int 和 int之间怎么进行转化?麻烦详细解释下面的题目!谢谢~

main()
{unsigned a=32768;
printf("a=%d",a);
答案是 -32768 我已经运行过了,麻烦解释下过程~

第1个回答  2010-08-20
#include<stdio.h>
#include<stdlib.h>

void main()
{
unsigned a=32768;
long int b;
short int c;
b = (long int) a;
printf("b=%d 0x%x\n",b,b);
c = (short) a;
printf("c=%d",c);
}

32768 已超出 short int 数值范围。
你要用 long int.
相似回答