簡體   English   中英

Java從int轉換為char表現得很奇怪

[英]Java casting from int to char acting weird

我試圖將xored int用於表示字符。 如果我只轉換一個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);
    }
}

它首先將244轉換為字符,然后嘗試使用128進行xor,這相當於您的第三個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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM