gpt4 book ai didi

java - 整数到尺寸较小的字符的内部转换

转载 作者:行者123 更新时间:2023-11-30 02:08:18 27 4
gpt4 key购买 nike

在下面的程序中,我将整数数据类型分配给字符数据类型。

    public static void main(String args[]) {
char ch =65;
System.out.println(ch);
}

我知道int占32位,char占16位。有了这些知识,我预计编译器会抛出一些消息“尝试将较大尺寸的数据转换为较小尺寸的数据”的错误。

为什么编译器没有提示并在内部将输出转换和打印为“A”(我知道它是 65 的 ASCII 等价物,我的问题仅与数据类型的大小有关)?

最佳答案

编译器实际上会验证该范围。这是有效的,因为 int 65 在预期范围内。

以下内容将无法编译:

char c = (int)Character.MAX_VALUE + 1
char c = 65536

这将会,就像你的作业一样:

char c = 65535 //Within range

但是,当该值在编译时不是常量时,就需要进行强制转换:

private static void charRange(int i) {
char c = (char) i;
System.out.println(" --> " + (int) c);
}

charRange(65);
charRange(Character.MAX_VALUE + 20);

检查不会发生(为溢出腾出空间)

--> 65
--> 19

关于java - 整数到尺寸较小的字符的内部转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50829613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com