0

これは私のコードです。lang クラスを使用します。しかし、langクラスを含まない同様のプログラムを書きたいです。私を助けてください。

import java.lang.*;
import java.io.*;
public class DecimalToBinary {
public static void main(String[] args) throws IOException{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter a Binary number");
    String str=br.readLine();
    long num=Long.parseLong(str);
    long rem;
    while(num>0){
        rem=num%10;
        num=num/10;
        if(rem!=0&&rem!=1){
            System.out.println("This is not a binary number,Please enter again");

        }
    }
    int i=Integer.parseInt(str,2);
    System.out.println("Decimal:"+i);


}

}

langクラスを使わずに同じ変換を行うには? 私を助けてください!!

4

3 に答える 3

1

これについて考える1つの方法は、問題を2つに分割することです。

  1. 入力された文字列が2進数を表すことをテストします。これはかなり簡単ですよね?文字列内の文字をテストする方法を考えてください。
  2. 10進数に変換しています。これは少し難しいです。ただし、文字列が正当なバイナリであることが確認されると、コードはより短く、より単純になり、記述と理解が容易になります。

ps質問に追加した「クラス」タグは、学校の仕事ではなく、Java / C#の「クラス」を参照しています。「宿題」が正しいタグだと思います。

于 2013-03-02T17:50:19.190 に答える
0

インデックス N - 1 から 0 までの入力の文字を調べて、現在の文字が有効かどうかを確認し、そうでない場合は例外をスローして停止することをお勧めします。有効な場合は、「2 pow (2 進数の現在の位置、たとえば (N - 1 - i))」のようなものを計算し、それを結果に追加します。これはおそらく宿題なので、これらの不完全なヒントしか提供できません。あなたはそれについて考えるべきです、解決の残りはあなた次第です.

于 2013-03-03T13:43:46.737 に答える
0

java.lang.* をインポートする必要はありません。
編集したコードは次のとおりです。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class DecimalToBinary {

public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.print("Enter a Binary number");
    String str = br.readLine();
    long num = Long.parseLong(str);
    long rem;
    while (num > 0) {
        rem = num % 10;
        num = num / 10;
        if (rem != 0 && rem != 1) {
            System.out.println("This is not a binary number,Please enter again");

        }
    }
    int i = Integer.parseInt(str, 2);
    System.out.println("Decimal:" + i);


}

}

于 2013-03-02T17:41:19.767 に答える