【发布时间】:2018-06-13 05:28:50
【问题描述】:
在以下程序中,我将整数数据类型分配给 char 数据类型。
public static void main(String args[]) {
char ch =65;
System.out.println(ch);
}
我知道 int 占用 32 位而 char 占用 16 位的事实。有了这些知识,我希望编译器会抛出一些错误消息“尝试将较大大小的数据转换为较小大小”。
为什么编译器不抱怨并在内部将输出转换并打印为“A”(我理解它是 65 的 ASCII 等价物,我的问题仅与数据类型的大小有关)?
【问题讨论】:
-
编译器会抱怨的 int 在哪里?它在编译时知道 65 将适合您的字符。
-
问问自己 1000001 占用多少位?