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

Строковое представление двоичного числа в десятичное число.

Здравствуйте! Я в процессе решения этой задачи столкнулась с такой проблемой. Сразу говорю, возможно, у меня здесь есть и другие ошибки, код пока не рабочий. А вопрос такой: в методе toDecimal(String) нужно из строкового представления двоичного числа получить десятичное число ( на вход у нас String binaryNumber, а на выходе должен быть int). При этом нельзя использовать Методы Integer.parseInt(String, int) и Long.parseLong(String, int). Вопрос в том, как строковое представление двоичного числа перевести в десятичное число без существующих методов? Спасибо!

Публичный статический метод toBinary(int) должен переводить целое число, полученное в качестве входящего параметра, из десятичной системы счисления в двоичную и возвращать его строковое представление. А публичный статический метод toDecimal(String) наоборот — из строкового представления двоичного числа в десятичное число.
Методы работают только с положительными числами и не пустыми строками. Если входящий параметр меньше или равен 0 , метод toBinary(int) возвращает пустую строку. Если входящий параметр — пустая строка или null, то метод toDecimal(String) возвращает 0 .
Твоя задача — реализовать эти методы.

Один из алгоритмов перевода десятичного числа в представление двоичного числа следующий:
while(десятичное число не равно 0) двоичное представление = остаток от деления десятичного числа на 2 + двоичное представление
десятичное число = десятичное число / 2
>

Один из алгоритмов перевода представления двоичного числа в десятичное число следующий:
for (int i = 0; i < длины двоичного представления; i++) десятичное число = десятичное число + число из двоичного представления * на 2 в степени i
>

Изначально берется крайнее правое число из двоичного представления. С каждой итерацией цикла берется следующее число ближе к началу двоичного представления.

Подсказка: чтобы возвести число к степени можно использовать метод Math.pow (число, степень).
Метод main() не принимает участие в тестировании.

Источник

(Java) Укажите количество бит (длина) при преобразовании двоичного числа в строку?

Я пытаюсь сохранить число в виде двоичной строки в массиве, но мне нужно указать, сколько бит будет хранить его как. Например, если мне нужно сохранить 0 с двумя битами, мне нужна строка «00». Или 1010 с 6 бит так «001010». Может ли кто-нибудь помочь? EDIT: Спасибо, ребята, поскольку я мусор по математике/программированию в целом, я пошел с самым простым решением, которое было Дэвидом. Что-то вроде:

binaryString.append(Integer.toBinaryString(binaryNumber)); for(int n=binaryString.length(); n

Это не будет работать с отрицательными числами и числами больше 2 ^ 31, так как они не помещаются в Java Integer. BigInteger автоматически изменяет количество бит, которые он использует для хранения значения. Вы все еще можете использовать свой метод заполнения, чтобы вставить 0 вперед.

Извините, я не знал о принятой марке. Спасибо за внимание к Фернандо, но я не думаю, что мне нужно будет делать это для любых отрицательных чисел или чего-то большего, чем 2 ^ 16, так что это должно быть хорошо, я думаю. Я все равно посмотрю на BigInteger на всякий случай.

Читайте также:  Center align button

8 ответов

Используйте Integer.toBinaryString() , затем проверьте длину строки и добавьте ее с таким количеством нулей, сколько вам нужно, чтобы сделать желаемую длину.

Я знаю, что это поздний ответ, но стоит отметить, что «подсказка» @Logic1 Logic1 может вызвать проблемы. Если у вас достаточно большое целое число, это вызовет переполнение и даст неожиданные результаты. Единственная строка, с которой я иду, это: String.format («% 32s», Integer.toBinaryString (flagValue.getIntValue ())). Replace (», ‘0’)

Забудьте о домашних решениях. Вместо этого используйте стандартный BigInteger. Вы можете указать количество бит, а затем использовать метод toString (int radix) для восстановления того, что вам нужно (я предполагаю, что вам нужен radix = 2).

РЕДАКТИРОВАТЬ: Я бы оставил бит-контроль для BigInteger. Объект будет внутренне изменять размер битового буфера, чтобы он соответствовал новому размеру. Кроме того, арифметические операции могут выполняться с помощью этого объекта (вам не нужно реализовывать двоичные сумматоры/множители и т.д.). Вот пример:

package test; import java.math.BigInteger; public class TestBigInteger < public static void main(String[] args) < String value = "1010"; BigInteger bi = new BigInteger(value,2); // Arithmetic operations System.out.println("Output: " + bi.toString(2)); bi = bi.add(bi); // 10 + 10 System.out.println("Output: " + bi.toString(2)); bi = bi.multiply(bi); // 20 * 20 System.out.println("Output: " + bi.toString(2)); /* * Padded to the next event number of bits */ System.out.println("Padded Output: " + pad(bi.toString(2), bi.bitLength() + bi.bitLength() % 2)); >static String pad(String s, int numDigits) < StringBuffer sb = new StringBuffer(s); int numZeros = numDigits - s.length(); while(numZeros-- >0) < sb.insert(0, "0"); >return sb.toString(); > > 

Источник

Вычислить длину битового представления

Надо вычислить длину битового представления. То есть число 169 в битовом представлении имеет 8 единиц и нолей(то есть длина 8). При этом нельзя использовать операции над строками(length), можно циклы .

Реализовать функции для проверки битового представления типа данных
Для типа данных int Необходимо реализовать функции для: 1. Проверки битового представления типа.

Читайте также:  Html разные типы ссылок

Работа с модулем управления цветом посредством битового представления чисел в памяти компьютера
Условие Был написан графический редактор на библиотеке Qt! Однако разработчик, который написал.

Написать реализацию файла «BinInOut.h» для битового представления числа
здравствуйте вот есть программа мне нужно представить числа побитово и вот программа но.

Вычислить длину отрезка в дюймах, зная его длину в ярдах и футах
Вычислить длину отрезка в дюймах, зная его длину в ярдах и футах (один ярд составляет 36 дюймов.

Эксперт PythonЭксперт Java

int n = -7; System.out.println(Integer.toBinaryString(n)); long m = -7; System.out.println(Long.toBinaryString(m));
11111111111111111111111111111001 1111111111111111111111111111111111111111111111111111111111111001

Источник

Длина двоичного кода

Дано целое положительное число N. Определите количество цифр в двоичном представлении числа N.

Входные данные
Во входном потоке в единственной строке записано число N (1

Выходные данные
В выходной поток следует записать единственное число — количество цифр в двоичной записи числа N.

Пояснение к примеру
Число 35 в двоичном виде записывается как 100011. Это 6 разрядов.

Написать программу шифрования текста шифром Вернама. Длина ключа К = 8 бит. 1.Для двоичного кодирования символов исходн
Доброго времени суток уважаемые программисты Прошу вас помочь написать программу сам пишу на.

Палиндром двоичного кода
Для введенного с клавиатуры натурального числа n(n<=32000) определить является ли его запись в.

Дешифровка двоичного кода
Дана строка String str = "1110001011000111101110110010110010101100110110001" в ANCII; каждый.

ЦитатаСообщение от senggg Посмотреть сообщение

Integer.toBinaryString(35).length()

Эксперт функциональных языков программированияЭксперт Python

Лучший ответ

Сообщение было отмечено senggg как решение

Решение

public static int binLen(int n) { int c=0; if (n==0) return 1; while (n>0) { n=n/2; c++; } return c; }

ЦитатаСообщение от Catstail Посмотреть сообщение

как вариант это выражение можно написать как:

Запуск двоичного кода
Доброго времени суток. У меня есть некоторой бинарный код: 55 48 89 e5 b8 05 00 00 00 5d c3 Он же.

Читайте также:  Enter fullscreen mode

Перевод из двоичного кода в текст
Добрый день, в c# совсем новичок, занимаюсь стеганографией. Почти все сделал только немного не.

Преобразование двоичного кода в текст
Здраствуйте, есть код который преобразует текст в двоичный код byte bytes =.

Проверка ввода двоичного кода
Здравствуйте. Возникла проблема в проверке ввода двоичного кода. Вводя 0,1 всё нормально работает.

Преобразование из двоичного кода в текст
Подскажите пожалуйста, как получить текст из набора 0 и 1. У меня есть переменная string a;. в ней.

Преобразование двоичного кода в символ
Вот код: def DvoichnText(text): pol = .rjust(8, ‘0’) for c in text.encode(‘utf-8’)] .

Источник

Ну, у меня, как и увсех, всё корректно. Но первая валидация не выполняется. )))

Публичный статический метод toBinary(int) должен переводить целое число, полученное в качестве входящего параметра, из десятичной системы счисления в двоичную и возвращать его строковое представление. А публичный статический метод toDecimal(String) наоборот — из строкового представления двоичного числа в десятичное число.
Методы работают только с положительными числами и не пустыми строками. Если входящий параметр меньше или равен 0 , метод toBinary(int) возвращает пустую строку. Если входящий параметр — пустая строка или null, то метод toDecimal(String) возвращает 0 .
Твоя задача — реализовать эти методы.

Один из алгоритмов перевода десятичного числа в представление двоичного числа следующий:
while(десятичное число не равно 0) двоичное представление = остаток от деления десятичного числа на 2 + двоичное представление
десятичное число = десятичное число / 2
>

Один из алгоритмов перевода представления двоичного числа в десятичное число следующий:
for (int i = 0; i < длины двоичного представления; i++) десятичное число = десятичное число + число из двоичного представления * на 2 в степени i
>

Изначально берется крайнее правое число из двоичного представления. С каждой итерацией цикла берется следующее число ближе к началу двоичного представления.

Подсказка: чтобы возвести число к степени можно использовать метод Math.pow (число, степень).
Метод main() не принимает участие в тестировании.

Источник

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