Nano Hash - криптовалюты, майнинг, программирование

изменить двоичное на десятичное

Мне нужно написать метод, который изменяет двоичное число на десятичное. Напишите метод, который преобразует предоставленную двоичную цифру (в виде строки) в десятичное число.

  • convertToDecimal("01101011") = 107
  • convertToDecimal("00001011") = 11

Я создал его для преобразования десятичного числа в двоичное, однако я не уверен, как преобразовать его из двоичного в десятичное.

public String convertToBinary(int decimal) {

    int n = decimal;
    int digit;
    String out = "";
    while (n > 0){
     n = decimal/2;
     digit = decimal % 2;
     out = digit + out;
     decimal = n;
    }

    out = addPadding(out);
    return out;
    }

private String addPadding(String s){
      String out = s;
      int len = s.length();
      if (len == 8) return s;
      else{
          switch(len){
            case 7:
                out = "0"+s;
                break;
            case 6:
                out = "00"+s;
                break;
            case 5:
                out = "000"+s;
                break;
           }
       }
       return out;
      }
}

  • Почему вы должны писать свой собственный метод вместо того, чтобы использовать те, что в jdk? 09.10.2018
  • именно то, что мне сказали делать в моем университете 09.10.2018
  • int не является десятичным числом. Он просто отображается в десятичном формате по умолчанию при печати. Вы также можете распечатать его в двоичном, восьмеричном и шестнадцатеричном форматах. По сути, int не является ни десятичным, ни шестнадцатеричным. Его внешний вид — это только то, что вы решили напечатать. 09.10.2018

Ответы:


1

Не уверен, что вам пришлось делать это вручную вашим учителем, но если нет, есть некоторые доступные встроенные функции, которые вы можете использовать:

// Convert binary String to integer:
// TODO: Surround with try-catch
int outputInt = Integer.parseInt(inputBinaryString, 2);

// Convert integer to binary String:
String outputBinaryString = Integer.toBinaryString(inputInt);

// Pad leading zeros to make the length 8:
String paddedResult = String.format("%8s", outputBinaryString).replace(' ', '0');

Попробуйте онлайн.

09.10.2018

2

Посмотрите, как это сделать, у вас есть подробный алгоритм здесь: https://javarevisited.blogspot.com/2015/01/how-to-convert-binary-number-to-decimal.html

Реализация алгоритма, предложенная там, принимает int в качестве входных данных. Вот версия String:

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';  //char to number conversion
         decimal += currentDigit * Math.pow(2, power);
         power++;
         currentIndex--;
     }
     return decimal;
 }

Преобразование символов в числа необходимо, потому что нам нужно преобразовать символы «1» или «0» в число 1 или 0. Мы можем сделать это, используя код ascii символов («0» = 48 и «1» = 49)

09.10.2018

3

Попробуйте этот код

import java.util.Scanner;

class BinaryToDecimal
{
        public static void main(String args[])
        {
            Scanner s=new Scanner(System.in);

            System.out.println("Enter a binary number:");
            int n=s.nextInt();

            int decimal=0,p=0;

            while(n!=0)
            {
                decimal+=((n%10)*Math.pow(2,p));
                n=n/10;
                p++;
            }

            System.out.println(decimal);
        }
}
09.10.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..