gpt4 book ai didi

java - 在 Java 中将 char 作为字节处理,结果不同

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:47 24 4
gpt4 key购买 nike

为什么下面两个结果不一样?

bsh % System.out.println((byte)'\u0080');
-128

bsh % System.out.println("\u0080".getBytes()[0]);
63

感谢您的回答。

最佳答案

(byte)'\u0080' 仅采用代码点的数值,它不适合 byte,因此受制于 narrowing primitive conversion它会丢弃不适合字节的位,并且由于设置了最高位,因此会产生一个负数。

"\u0080".getBytes()[0] 根据您的平台默认编码将字符转换为字节(有一个重载的 getBytes() 方法允许你来指定编码)。看起来您的平台默认编码无法表示代码点 U+0080,并将其替换为“?” (代码点 U+003F,十进制值 63)。

关于java - 在 Java 中将 char 作为字节处理,结果不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4990316/

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