gpt4 book ai didi

java - 在 Java 中,为什么将字符类型转换为整数不扩展符号位

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:36:13 24 4
gpt4 key购买 nike

在 Java 中,按位运算会导致类型转换为整数,还会导致符号扩展。例如,预计会出现以下情况:

byte b = -1;
System.out.println(b >> 1);//-1

在 Java 中,字符以 UTF-16 编码,每个单元用 2 个字节表示。

char c = 0xFFFF; //I assume now the sign bit is 1.
System.out.println(c >> 1);//32767 ???? WHY

我期待的是 -1 而不是 32767。为什么在应用按位运算之前的类型转换期间没有扩展符号?有什么想法吗?

最佳答案

因为 char 是无符号的 - 0xFFFF 的实际值为 65535

关于java - 在 Java 中,为什么将字符类型转换为整数不扩展符号位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8165264/

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