Напишите метод, который преобразует предоставленную двоичную цифру (в виде строки) в десятичное число - PullRequest
0 голосов
/ 26 сентября 2019

Цель этого метода - преобразовать предоставленную двоичную цифру (в виде строки) в десятичное число, но я не получаю результат, который требует вопрос, с кодом, который у меня есть, например, convertToDecimal("01101011") = 107, и яя не уверен, я верю им преобразование двоичного числа в десятичное число правильно.например:

Тест

System.out.println(convertToDecimal("11001101")); = 205 

Я пробовал цикл while и создавал целочисленные значения, но это просто не дает мне те же результаты

public static int binaryToDecimal(String binary) {
     int decimal = 0;
     int power = 0;
     int currentIndex = binary.length() - 1;
     while (currentIndex>=0) {
         int currentDigit = binary.charAt(currentIndex) - '0';  
         decimal += currentDigit * Math.pow(2, power);
         power++;
         currentIndex--;
     }
     return decimal;
 }

Я ожидал выводабыть:

convertToDecimal("01101011") = 107 
convertToDecimal("00001011") = 11    ,  
System.out.println(convertToDecimal("11001101")); = 205 

но никто не был прав

1 Ответ

0 голосов
/ 26 сентября 2019

Я запустил твой код, и он заработал.Но мне нужно сделать одно простое изменение:

System.out.println(convertToDecimal("11001101")); = 205 

должно быть изменено на:

System.out.println(binaryToDecimal("11001101")); = 205 

, потому что binaryToDecimal () - это фактическое имя вашей функции:

public static int binaryToDecimal(String binary) {
     int decimal = 0;
     int power = 0;
     int currentIndex = binary.length() - 1;
     while (currentIndex>=0) {
         int currentDigit = binary.charAt(currentIndex) - '0';  
         decimal += currentDigit * Math.pow(2, power);
         power++;
         currentIndex--;
     }
     return decimal;
 }

После этого все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...