为什么在C++中,值为65536的整型变量的输出为0且<65536给出一个负整数,> 65536的值给出一个正整数?

Ume*_*san 0 c c++ integer type-conversion turbo-c

为什么在Turbo C++ IDE中,硬编码值65536的整数变量的输出为0且小于该值(65536)为负整数且大于该值(65536)为正整数?

如果我们初始化一个硬编码值为65536的整数并打印它,它将打印0,如果我们将该整数变量的值从65536更改为65535或更小,如65534,依此类推它打印-1,-2,. ..如果我们将该整数变量的值从65536更改为65537或更高,它将打印1,2,3 ...依此类推,为什么会发生这种情况?我在Turbo C++ IDE上验证了它.

因为我是初学者,请清楚地解释逻辑并在此背后明确地工作.

chi*_*ill 7

古老的Turbo C++使用了16位int.