データ分割のプログラム
誤り訂正を行うプログラムを製作しているのですが,データの分割がうまくいきませんでした.
恐れ入りますが,どう直せばいいか教えてください.
public static void main(String[] args) {
int data = 01001101; int a[] = new int[8]; int i; for(i=7;i>=0;i--){ a[i] =data%10; System.out.println(+i+"番目の数は " +a[i] +" です. "); data = data/10;
}
}
データを後ろから一つずつ取り出してa[i]に格納したいのですが,
7番目の計算の結果は 1 です.
6番目の計算の結果は 2 です.
5番目の計算の結果は 7 です.
4番目の計算の結果は 2 です.
3番目の計算の結果は 6 です.
2番目の計算の結果は 2 です.
1番目の計算の結果は 0 です.
0番目の計算の結果は 0 です.
という結果が出てきてしまいます.
―以下,追記分―
皆様,ありがとうございます.最初が0で始まる場合は8進数になっていたのですね.最初を1にすれば正常に動作しました.
恐れ入りますが0から始まる場合も正常に動作させるためにはどうすればいいのでしょうか.
intからStringに変換したらうまくいくかとも思ったのですが,うまくいきませんでした.やはり1行目で自動的に8進数扱いになってしまうようです.解決策をご存知の方,よろしくお願いいたします.
public static void main(String[] args) {
int bigdata = 01001101; Integer value = bigdata; String data = String.valueOf(value); String[] result = new String[8]; int a[] = new int[8]; int i; for(i=7;i>=0;i--){ result[i] = String.valueOf(data.charAt(i)); a[i] =Integer.parseInt(result[i]); System.out.println(+i+"番目は " +a[i] +" です. ");; }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/02 01:35
2016/06/02 01:37
2016/06/02 02:25