windows2000 LSI C-86試食版(C-PAD使用) を使っています。

-----------------------------------------------------------
#include <stdio.h> /*stdio.hファイル宣言*/

int main()
{
short x1,x2; /*符号付きのshort*/
unsigned short y1,y2; /*符号無しのshort*/

x1=-32768;
x2=32767;
printf("x1=%d x2=%d \n",x1,x2);

y1=1;
y2=65535;
printf("y1=%d y2=%d \n",y1,y2);
}
-----------------------------------------------------------

x1= -32768 x2= 32767
y1= 0 y2= 65000
と表示させたいのですが。
x1= -32768 x2= 32767
y1= 1 y2= -1
となってしまいます。
short以外を使ったほうがいいのでしょうか、longを使用したら違う結果が出ました。

レベル低くて申し訳ありませんが、ヒントを頂ければと思います。