Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java从int到char的转换_Java_Casting - Fatal编程技术网

Java从int到char的转换

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();

我正在尝试将xored INT转换为chars。如果我只强制转换一个int,它将被转换为正确的字符。但若我对两个字符进行异或运算并将其结果转换为整数值。为什么?

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));