1

XOR を実行し、16 進数から文字列に変換した後、16 進数値「89」が「‰」と表示されることを期待していましたが、Eclipse では「?」が表示されます。デバッグ中、文字は実際には空白です。なんで?

  1. 文字列 "r" を 16 進数 => "72" に変換しています。
  2. 次に、"72" と "FB" (û) => "89" を XOR します。
  3. 次に、この関数を使用して「89」を文字列に変換します。

    public static String HexToString(String hex){
      StringBuilder sb = new StringBuilder();
      StringBuilder temp = new StringBuilder();
    
      for( int i=0; i<hex.length()-1; i+=2 ){
    
          //grab the hex in pairs
          String output = hex.substring(i, (i + 2));
    
          //convert hex to decimal
          int decimal = Integer.parseInt(output, 16);
    
          //convert the decimal to character
          sb.append((char)decimal);
    
          temp.append(decimal);
      }
      System.out.println("Decimal : " + temp.toString());
    
      return sb.toString();
      }
    

結果をコンソールに出力した後、「?」が表示されます。それ以外の "‰"。なにが問題ですか?

編集: これは、10 進数の値と (char)decimal のデバッグ値を示すスクリーンショットです。 (文字)10 進数

4

1 に答える 1

3
于 2012-05-08T18:05:22.447 に答える