gpt4 book ai didi

java - 当我尝试打印 char(-1) 时,它如何在 Java 中打印 '?'

转载 作者:行者123 更新时间:2023-11-29 05:33:39 26 4
gpt4 key购买 nike

最近在看Java Puzzlers,第六题里面提到了基本数据类型的转换。然后我想尝试将 (-1) 转换为 char 并打印它。它应该打印-1的ascii码,对吧?但是没有一个字符的 ascii 是 -1,有人告诉我它应该是 255。事实上它输出'?',有没有人能给我一个理由?

感恩节谢谢大家。

最佳答案

将 -1 放入 char 中会使它溢出到 0xFFFF(因为它是一个 unsigned 16 bit value 。) 0xFFFF is a non-character , 因此 ?.

如果溢出产生的字符不是非字符,它会正常显示:

char x = (char)-65500;
System.out.println(x); //Prints $

同样的原则,只是这一次我们溢出到一个实际附加了定义字符的值(36,美元符号)。请注意,这没有实际应用 - 你永远不想故意溢出一个字符将其设置为负值。

关于java - 当我尝试打印 char(-1) 时,它如何在 Java 中打印 '?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20268009/

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