- Перевод числа из десятичной с\с в двоичную с\с
- 6 ответов 6
- Преобразовать число в двоичное в Java
- 1. Использование встроенных методов
- 2. Наивное решение
- Java перевод десятичного числа в двоичное
- Java Decimal to Binary conversion: Custom Logic
- Feedback
- Help Others, Please Share
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
- Можно ли перевести число из десятичной системы в двоичную не используя циклы
- 1 ответ 1
- Похожие
- Подписаться на ленту
- Java из двоичной системы в десятичную и обратно
- Share this:
- Понравилось это:
- Похожее
- 7 thoughts on “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». но как реализовать это я пока не могу придумать) есть идеи?
Преобразовать число в двоичное в 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
For Videos Join Our Youtube Channel: Join Now
Feedback
Help Others, Please Share
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
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
Можно ли перевести число из десятичной системы в двоичную не используя циклы
Тогда может вы подскажете как быть с заданием? «Реализовать функционал, который принимает на вход число (в диапазоне от 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
Нажимая «Принять все файлы 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» и т.д. ток динамическим боком >значений и из него доставать так же как ты щас замутил через принт, ток массив(переменная со значением). Ответить «0000»,>
Duke Nukem said: 26 августа, 2017 в 7:40 пп
Кстати, классно что есть методы toOctalString — перевод в восьмиричную систему и toHexString (шетнадцатиричная) работа с которыми абсолютна аналогична. Ответить