一上,无符号整型的赋值有关问题,望高手帮忙解答

弱弱的问一下,无符号整型的赋值问题,望高手帮忙解答#include stdio.hint main(){ unsigned short int a

弱弱的问一下,无符号整型的赋值问题,望高手帮忙解答
#include <stdio.h>
int main()
{
 unsigned short int a=-1;
 printf("a=%d\n",a);
 return 0;
}
输出结果为65535

#include <stdio.h>
int main()
{
 unsigned  int a=-1;
 printf("a=%d\n",a);
 return 0;
}
输出结果却为-1

为什么负数能赋值给无符号整型,两次的输出结果为什么有差异,求解,TKS