C语言位段有关问题(求高手解答)

C语言位段问题(求高手解答)
struct {
  int a:2;  
}x;


x.a = 1;

printf(" x.a = %d \n",x.a);

x.a += 1;

printf(" x.a = %d \n",x.a);


请问: 2次打印出x.a的值分别是? 对于第2个值如何理解?

------解决方案--------------------
大概是1,-2把
有符号数最高位是符号位
------解决方案--------------------
探讨
大概是1,-2把
有符号数最高位是符号位