【发布时间】:2019-08-31 23:03:37
【问题描述】:
Java 使用 32 位来表示字符 - 所以最大值是 65536。
但是下面的代码给了我标题中报告的结果。
public static void main(String[] args) {
int a = 10000000;
char b = 33;
b = (char)a;
System.out.println((int)b);
}
【问题讨论】:
-
您正在观察溢出。不知道你的预期,崩溃? Java 不会因溢出而崩溃。
-
您期望获得什么价值,以及为什么您期望得到什么?如果您认为
65535,那么您应该阅读Narrowing Primitive Conversion 在Java 中的工作原理。 -
我想你的意思是 16 位,给出 65536 个可能的值。 32 位给出 4,294,967,296 个可能的值。
标签: java casting integer-overflow