Java перевод десятичного числа в двоичное

Перевод числа из десятичной с\с в двоичную с\с

А не проще сначала посчитать а потом вывести? Или задача именно в выводе? Если в выводе то можно сразу в строку забивать в нужной последовательности а потом вывести.

вот само задание: Write a method that receives an integer in base ten and returns out the original number represented in base 2. For example, giving 8 will return «1000».

6 ответов 6

Потому, что попробуйте решить задачу вручную и сразу все поймете.

b = 8 % 2 = 0 b = 4 % 2 = 0 b = 2 % 2 = 0 b = 1 % 2 = 1 

И вы соответственно последовательно это выводите. Как решение проблемы, пишите все в строку (StringBuilder), а затем переверните ее.

Вот решение без использования String`а

 public static void binar(int n) < int i = bitsInNumber(n); int bit; while ( --i >= 0 ) < bit = (n & (1 > public static int bitsInNumber(int n) < int res = 0; while (n >0) < n >>= 1; res++; > return res; > 
int a = 290; System.out.println(Integer.toString(a, 2)); 
public static String toBinaryString(int i)

У автора как раз цель: «написать метод перевода числа из десятичной сс в двоичную сс». Конечно, при реальной разработке стоит воспользоваться готовым решением.

Решение таки было найдено =)

public class Binary < public static void binar(int a)< int b; String temp = ""; while(a !=0)< b = a%2; temp = b + temp; a = a/2; >System.out.print(temp); > public static void main(String [] args) < binar(5); >> 

если вашей задачей было вывести бинарное представление строки в целях «сдать лабу» то да. во всех других случаях советую обратить внимание на ответ @Антон-Феоктистов

Задача преведена комментарием выше 😉 В данном случае целью стояло применить полученные знания на практике, к тому же, вопрос был несколько иным, не подсказывать решение, а подсказать почему происходит определённое действие; за предоставленное оптимальное решение конечно спасибо! (Буду иметь ввиду его в будущем) =)

public class Example < public static String iterateBinarConv(int number) < if (number < 0) throw new IllegalArgumentException("Number < 0"); if (number == 0) return "0"; /*вычисляем длинну массива для буф.*/ int index = (int) Math.ceil( Math.log(number) / Math.log(2) ) + 1; char[] buf = new char[index]; int innerIndex = index - 1; while (number != 0) < buf[innerIndex--] = (char) ((number % 2) + 30); number/=2; >return new String(buf); > > 
package bin; import java.util.Scanner; public class Binar < public static void binar(int a)< int b; String temp = ""; while(a !=0)< b = a%2; temp = b + temp; a = a/2; >if (temp.equals("10")) < temp = "0" + temp; System.out.println(temp); >if (temp.equals("11")) < temp = "0" + temp; System.out.println(temp); >if (temp.equals("1")) < temp = "00" + temp; System.out.println(temp); >else < System.out.println(temp); >> public static void binarturn(String [] args) < Scanner kb = new Scanner (System.in); System.out.print("Введите число которое хотите перевести в (Двоичное) - "); int c = kb.nextInt(); binar(c); kb.close(); >> 

А еще вот модификация на основе взятого кода, без метода main и подготовленного для импорта в другие классы. собственно весь класс является методом. Развилка if добавлена для того что бы при переводе 1,2,3 мы получали «001», «010», «011» а не 1,10,11. А теперь у меня возникла идея, что бы после вызова данного метода в другом классе можно было в том же классе сохранить выдаваемое значение из тела текущего метода а именно «temp». но как реализовать это я пока не могу придумать) есть идеи?

Читайте также:  imgExample

Источник

Преобразовать число в двоичное в Java

В этом посте мы обсудим, как преобразовать число в двоичное в Java.

1. Использование встроенных методов

Стандартным решением для преобразования числа в двоичное в Java является использование Integer.toBinaryString() метод, который возвращает двоичное представление указанного целого числа в строковом формате.

результат:

1001011

Точно так же вы можете преобразовать длинное значение, используя Long.toBinaryString() метод.

результат:

1001011

В качестве альтернативы вы можете использовать toString(i, r) метод, который возвращает строковое представление i в основе r . Однако это не работает так, как предполагалось для отрицательных чисел.

результат:

1001011

Если вам нужно, чтобы двоичное представление целого числа было дополнено нулями слева, вы можете использовать любой из методов, описанных в это почта:

2. Наивное решение

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

результат:

00000000000000000000000001001011

Вот рекурсивная версия приведенного выше кода:

результат:

00000000000000000000000001001011

Вот и все о преобразовании числа в двоичное в Java.

Средний рейтинг 4.5 /5. Подсчет голосов: 8

Голосов пока нет! Будьте первым, кто оценит этот пост.

Сожалеем, что этот пост не оказался для вас полезным!

Расскажите, как мы можем улучшить этот пост?

Спасибо за чтение.

Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.

Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂

Этот веб-сайт использует файлы cookie. Используя этот сайт, вы соглашаетесь с использованием файлов cookie, нашей политикой, условиями авторского права и другими условиями. Читайте наши Политика конфиденциальности. Понятно

Источник

Java перевод десятичного числа в двоичное

Java Decimal to Binary conversion: Custom Logic

We can convert decimal to binary in java using custom logic.

Decimal of 10 is: 1010 Decimal of 21 is: 10101 Decimal of 31 is: 11111

Youtube

For Videos Join Our Youtube Channel: Join Now

Читайте также:  Html css body background image size

Feedback

Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials

Splunk tutorial

SPSS tutorial

Swagger tutorial

T-SQL tutorial

Tumblr tutorial

React tutorial

Regex tutorial

Reinforcement learning tutorial

R Programming tutorial

RxJS tutorial

React Native tutorial

Python Design Patterns

Python Pillow tutorial

Python Turtle tutorial

Keras tutorial

Preparation

Aptitude

Logical Reasoning

Verbal Ability

Company Interview Questions

Artificial Intelligence

AWS Tutorial

Selenium tutorial

Cloud Computing

Hadoop tutorial

ReactJS Tutorial

Data Science Tutorial

Angular 7 Tutorial

Blockchain Tutorial

Git Tutorial

Machine Learning Tutorial

DevOps Tutorial

B.Tech / MCA

DBMS tutorial

Data Structures tutorial

DAA tutorial

Operating System

Computer Network tutorial

Compiler Design tutorial

Computer Organization and Architecture

Discrete Mathematics Tutorial

Ethical Hacking

Computer Graphics Tutorial

Software Engineering

html tutorial

Cyber Security tutorial

Automata Tutorial

C Language tutorial

C++ tutorial

Java tutorial

.Net Framework tutorial

Python tutorial

List of Programs

Control Systems tutorial

Data Mining Tutorial

Data Warehouse Tutorial

Javatpoint Services

JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.

  • Website Designing
  • Website Development
  • Java Development
  • PHP Development
  • WordPress
  • Graphic Designing
  • Logo
  • Digital Marketing
  • On Page and Off Page SEO
  • PPC
  • Content Development
  • Corporate Training
  • Classroom and Online Training
  • Data Entry

Training For College Campus

JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week

Like/Subscribe us for latest updates or newsletter RSS Feed Subscribe to Get Email Alerts Facebook Page Twitter Page YouTube Blog Page

Источник

Можно ли перевести число из десятичной системы в двоичную не используя циклы

Тогда может вы подскажете как быть с заданием? «Реализовать функционал, который принимает на вход число (в диапазоне от 0 до 255) и выводит на экран его двоичное представление (нельзя использовать циклы, почитайте про оператор % в java)»

Какое задание, такая и программа. Поскольку числа от 0 до 255 вмещаются в 8 бит, то просто напишите 8 раз вывод 0 или 1 в зависимости от состояния бита (сначала 7-го, а в конце 0-го)

1 ответ 1

Нельзя циклы — используйте рекурсию:

private static void printBinary(int val) < if (val < 2)< System.out.print(val); return; >int digit = val % 2; printBinary(val / 2); System.out.print(digit); > printBinary(1); System.out.println(); // 1 printBinary(2); System.out.println(); // 10 printBinary(7); System.out.println(); // 111 printBinary(254); System.out.println(); // 11111110 printBinary(255); System.out.println(); // 11111111 

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.27.43548

Читайте также:  METANIT.COM

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Источник

Java из двоичной системы в десятичную и обратно

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

int i = 232; //число 232 в двоичной системе System.out.println(Integer.toBinaryString(i)); //обратыный перевод из двоичной системы в десятичную System.out.println(Integer.parseInt("11101000", 2));

Вывод на консоль:
11101000
232

Также есть перевод в восьмиричную систему ( метод toOctalString) и шестнадцатиричную ( метод toHexString)

Share this:

Понравилось это:

Похожее

7 thoughts on “Java из двоичной системы в десятичную и обратно”

Duke Nukem said: 26 августа, 2017 в 7:39 пп

можно запулить одномерный динамичексий массив строковых двоичных типа: String massive[] = new <«0000», «0001» и т.д. ток динамическим боком >значений и из него доставать так же как ты щас замутил через принт, ток массив(переменная со значением). Ответить

Duke Nukem said: 26 августа, 2017 в 7:40 пп

Кстати, классно что есть методы toOctalString — перевод в восьмиричную систему и toHexString (шетнадцатиричная) работа с которыми абсолютна аналогична. Ответить

Источник

Оцените статью