我正在尝试将异或整数转换为字符。如果我只转换一个 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/