Java从int到char的转换
我正在尝试将xored INT转换为chars。如果我只强制转换一个int,它将被转换为正确的字符。但若我对两个字符进行异或运算并将其结果转换为整数值。为什么?Java从int到char的转换,java,casting,Java,Casting,我正在尝试将xored INT转换为chars。如果我只强制转换一个int,它将被转换为正确的字符。但若我对两个字符进行异或运算并将其结果转换为整数值。为什么? public class ClassToTestSnippets { private static ClassToTestSnippets ctts; public static void main(String[] args) { ctts = new ClassToTestSnippets();
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进行异或,这相当于您的第三个print语句
System.out.println((((char) 244) ^128));//this is how it interprets.
System.out.println((char) 116);
System.out.println(244^128);
因为
首先执行强制转换,然后将
int
隐式转换为char
您必须添加括号,以便XOR的结果,而不仅仅是第一个参数将转换为char
System.out.println((char) (244^128));