我有一个关于shortJava中数据类型的问题.我知道短期的范围在-32768到32767之间.
因此,如果我尝试添加两个超出范围的短值,则结果最终为假定的总减去正范围或负范围乘以2,如下所示:
short a = 30000;
a = (short) (a+a);
Run Code Online (Sandbox Code Playgroud)
结果是-5536.
所以数学是32768 + 32768 = 65536,6000 - 65536 = -5536.
我知道它的作用,但我不知道为什么会这样做.
任何人都可以解释逻辑或为什么Java这样做?