0

2 つの int 値を乗算しようとすると、このコード スニペットが次の出力を生成する理由がわかりません。これはばかげているかもしれませんが、私にはわかりません。コードと出力をここに貼り付けました

public static void main(String[] args) {
    // TODO code application logic here
    String numstring = "12122";
    char[] numArray = numstring.toCharArray();
    int num =0;
    int index = 10;
    int count = 0;
    for(int i=numArray.length-1;i>=0;i--){
      int ind = (int)(Math.pow(index,count));
      System.out.print(numArray[i]+"*"+ind);
      System.out.println(" prints as ----->"+numArray[i]*ind);
      count++;
    }
}

出力:

    2*1 prints as ----->50
    2*10 prints as ----->500
    1*100 prints as ----->4900
    2*1000 prints as ----->50000
    1*10000 prints as ----->490000
4

2 に答える 2

1

あなたは2つのintを掛けていません。intindを 、charASCII'2'値が50(少なくとも最初のケースでは) であると乗算します。を使用することもできますが、 を使い続けint[]たい場合char[]は、次のようにすることもできます。

System.out.println(" prints as ----->"+ Character.getNumericValue(numArray[i]) * ind);
于 2013-06-23T22:58:43.390 に答える
0

文字は実際には整数なので、たとえば、文字 '2' の int 値は 50 です。

どの整数がどの文字に対応しているかを確認するには、ASCII テーブルを確認してください。

必要なことを行うには、 Character.getNumericValue()メソッドを使用する必要があります。

System.out.println(" prints as ----->"+Character.getNumericValue(numArray[i])*ind);
于 2013-06-23T22:58:14.477 に答える