Java 从 int 到 char 的转换表现得很奇怪

标签 java casting

我正在尝试将异或整数转换为字符。如果我只转换一个 int ,它就会转换为正确的 char 。但是,如果我异或两个字符并转换它们的结果,我会得到整数值。为什么?

public class ClassToTestSnippets {

    private static ClassToTestSnippets ctts;

    public static void main(String[] args) {
        ctts = new ClassToTestSnippets();
        ctts.testThisMethod();
    }

    public void testThisMethod() {
        System.out.println((char) 244^128);
        System.out.println((char) 116);
        System.out.println(244^128);
    }
}

最佳答案

它首先将 244 转换为字符,然后尝试与 128 进行异或,这相当于您的第三个打印语句。

System.out.println((((char) 244) ^128));//this is how it interprets.
System.out.println((char) 116);
System.out.println(244^128);

关于Java 从 int 到 char 的转换表现得很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26465692/

相关文章:

java - 为什么这个错误涉及另一个类?

c# - 将 Double 变量转换为 Decimal

c++ - 从基类转换为未知的派生类

java - 通过 JS 调用 JSF 方法

c++ - 存储升压功能

mysql - 即使在增加列长度后 MySQL 表上的算术溢出

c - malloc 中是否需要类型转换?

java - OnListItem点击打开一个新的Fragment

java - 动态地将方法体重新分配给对象

java - ThreadPoolExecutor 避免同一 ID 的并发处理