short变量赋值为32768, 实际为什么是-32768? 90 次浏览 如上假设short类型为2字节。一般而言,编译器计算32768是按照当前值乘10加当前位计算十进制字面量。32768实际上是32767 + 1,即0x7FFF + 1 == 0x8000,即-32768. C/C++/ObjC从不会对溢出的计算在运行期报任何错误,编译期根据警告级别可能会提示。不要责怪它们,它们甚至觉得这样的溢出是程序员的预期。