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. 转换为十进制。这有点难。但是,一旦您确定 String 是合法的二进制文件,代码就会变得更短、更简单、更容易编写和理解。

ps您添加到问题中的“类”标签是指Java/C#“类”,而不是学校作业。我认为“作业”是正确的标签。

于 2013-03-02T17:50:19.190 回答
0

我建议您从索引 N - 1 到 0 遍历输入的字符,并检查当前字符是否有效,如果不是,则通过抛出异常停止。如果它是有效的,您计算类似“2 pow(二进制数字的当前位置,例如(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 回答