
前提・実現したいこと
2進数から10進数に変換するプログラムを作りたいです。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーは無いのです。 ただ、例えば、2進数「1000」を文字列として入力した後、2進数「1000」を反転させ「0001」とします。 そして数値を一つずつ取り出して、for文で回して 「0*の0乗」+「0*1乗」+「0*2の2乗」+「1*2の3乗」で10進数の 「8」を取り出したいのですが、全く違った結果が出てしまいます。 結果は 0 0 0 1 0 0 0 1 30000 よろしくご教授お願い致します。
該当のソースコード
Java
1//2進数->10進数 2 3import java.util.Scanner; 4 5class Main{ 6 static void letterAcquisition(String s){ 7 for(int i=s.length()-1; i>=0; i--){ //文字を一つずつ反転させながら取得 8 9 System.out.println(s.charAt(i)); 10 } 11 } 12 static void twoTenBase(String s){ //2進数->10進数変換メソッド 13 14 letterAcquisition(s); 15 int n=Integer.parseInt(s); 16 int sum=0; 17 for(int i=0; i<s.length(); i++){ 18 n=n*2; 19 sum+=n; 20 21 } 22 System.out.print(sum); 23 } 24 public static void main(String[] args){ 25 Scanner sc=new Scanner(System.in); 26 27 String s=sc.next(); 28 letterAcquisition(s); 29 twoTenBase(s); 30 31 } 32}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
結果は
0
0
0
1
0
0
0
1
30000
と出てしまいます。
回答2件
あなたの回答
tips
プレビュー