Как получить строку для int, а затем отправить ее в другой метод - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь, чтобы моя строка, входящая в мой драйвер, стала int, а не отправлялась в convertToBinary () таким образом, чтобы ее можно было использовать для определения двоичного файла. Любая помощь будет отличной!

   class DecimalBinary   {

      private String decimal = "0";
      private String binary = "";

      public void setDecimal(String decimal){
         int intdecimal = Integer.parseInt(decimal);
         convertToBinary();
      }

      public String convertToBinary(){
         int pow = 128;
         intdecimal = 0;


         while (intdecimal > 0){

            if (intdecimal >= pow){
              binary += "1";
              intdecimal = intdecimal - pow;
            } 
            else if (intdecimal < pow){
                binary += "0";
            }
         pow = pow / 2;

         }

      return binary;
      }

      public String  toString(){
          return decreturn + " is " + binary + " in binary";
      }
  }

Ответы [ 3 ]

1 голос
/ 17 октября 2019

На самом деле есть способ преобразования в двоичные строки! Ваш метод может быть уменьшен до

private String binary;

public void setDecimal(String decimal){
   int intdecimal = Integer.parseInt(decimal);
   binary = Integer.toBinaryString(intdecimal);
}

Но если вы хотите придерживаться своего собственного метода двоичного преобразования, то, как говорится в первом ответе, вам нужно передать параметр.

Проблема в том, что ваша переменная intdecimal в методе setDecimal не совпадает с intdecimal в вашем методе преобразования!

0 голосов
/ 17 октября 2019

когда вы вызываете функцию convertToBinary передать десятичное значение convertToBinary(decimal);

public String convertToBinary(int dec)
{ 
    decimal=dec;
}
0 голосов
/ 17 октября 2019

Ваш метод конвертации сначала должен иметь параметр:

public String convertToBinary(int decimal){
     int pow = 128;

     while (decimal > 0){

        if (decimal >= pow){
          binary += "1";
          decimal = decimal - pow;
        } 
        else if (decimal < pow){
            binary += "0";
        }
     pow = pow / 2;

     }

  return binary;
  }

, а затем вызываться так:

  public void setDecimal(String decimal){
     int intdecimal = Integer.parseInt(decimal);
     convertToBinary(intdecimal);
  }
...