我正在尝试将xored ints转换为chars。如果我只转换一个int,它会被转换为一个正确的char。但如果我xor两个字符并转换他们的结果我得到整数值。为什么呢?
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);
}
}
答案 0 :(得分:6)
它首先将244转换为字符然后尝试xor与128相当于你的第三个打印语句。
System.out.println((((char) 244) ^128));//this is how it interprets.
System.out.println((char) 116);
System.out.println(244^128);
答案 1 :(得分:6)
首先执行强制转换,然后int
将隐式强制转换为char
。
答案 2 :(得分:1)
您必须添加括号,以便XOR的结果而不仅仅是第一个参数将转换为char。
System.out.println((char) (244^128));