如何在没有数组或递归的情况下将十进制转换为二进制?

我试图在没有任何数组或没有递归的情况下将十进制转换为二进制。我知道您可以使用一个命令将十进制转换为二进制,但我正在尝试手动执行此操作。任何帮助,将不胜感激。


   public class Decimaltobinary {


    public static String decimalToBinary(int valueIn){


        //    String binaryOut = "";

        //    int counter = 0;

        int remainder, i = 0;


        while (valueIn != 0){

            remainder = valueIn % 2;

            valueIn /= 2;

            int binaryNum += remainder * i;

            i *= 10;

        }

        return binaryNum;


    }


    /**

    * @param args the command line arguments

    */


    public static void main(String[] args) {

        // TODO code application logic here

        Scanner keyboard = new Scanner (System.in);

        System.out.println("Please enter the decimal number: ");

        int valueIn = keyboard.nextInt ();

        String outputOut = decimalToBinary(valueIn);

        System.out.println ("The output is: " +outputOut);    

    }


}

我收到返回 BinaryNum 语句的错误,显示“找不到符号”和错误


 int binaryNum += remainder * i;

陈述。错误说 '; 预期的'。


森栏
浏览 155回答 1
1回答

回首忆惘然

您binaryNum在while循环内声明,因此此变量的范围将仅在循环内,将其声明在while循环外并将 binaryNum 类型更改为 Stringpublic class Decimaltobinary {public static String decimalToBinary(int valueIn){     //    String binaryOut = "";     //    int counter = 0;      int remainder, i = 0;       String binaryNum ="";      while (valueIn != 0){        remainder = valueIn % 2;        valueIn /= 2;        binaryNum = remainder+binaryNum;      }     return binaryNum;}/*** @param args the command line arguments*/public static void main(String[] args) {    // TODO code application logic here    Scanner keyboard = new Scanner (System.in);    System.out.println("Please enter the decimal number: ");    int valueIn = keyboard.nextInt ();    String outputOut = decimalToBinary(valueIn);    System.out.println ("The output is: " +outputOut);       }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java