Top-office11.ru

IT и мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Перевод десятичного числа в двоичное java

Вывести целое число в двоичном формате в Java

У меня есть номер, и я хочу напечатать его в двоичном формате. Я не хочу делать это, написав алгоритм, есть ли для этого встроенная функция в Java?

19 Ответов

Предполагая, что вы имеете в виду «built-in»:

( Long имеет аналогичный метод, BigInteger имеет метод экземпляра, в котором можно указать радикс.)

Здесь не нужно зависеть только от двоичного или любого другого формата. одна гибкая встроенная функция доступна для печати в любом формате, который вы хотите использовать в своей программе.. Integer.toString(int,representation);

Мне нужно было что-то, чтобы красиво распечатать вещи и отделить биты каждый n-бит. Другими словами выведите ведущие нули и покажите что то вроде этого:

Итак вот что я написал:

Вызовите его вот так:

проверьте эту логику можно преобразовать число в любую базу

OR

Это самый простой способ печати внутреннего двоичного представления целого числа. Например : если мы возьмем n как 17, то выход будет: 0000 0000 0000 0000 0000 0000 0001 0001

Просто попробуйте это сделать. Если область видимости печатает только двоичные значения заданного целочисленного значения. Она может быть положительной или отрицательной.

вход

Выход

Уже есть хорошие ответы, размещенные здесь на этот вопрос. Но, это способ, который я пробовал сам (и, возможно, самый простой логический на основе → modulo/divide/add ):

Решение с использованием 32-битной маски отображения,

Я думаю, что это самый простой алгоритм на данный момент (для тех, кто не хочет использовать встроенные функции):

convertNumber(1) — > «0b1»

convertNumber(5) —> «0b101»

convertNumber(117) —> «0b1110101»

Как это работает: while-loop перемещает a-число вправо (заменяя последний бит на second-to-last и т. д.), получает значение последнего бита и помещает его в StringBuilder, повторяет до тех пор, пока не останется ни одного бита (это когда a=0).

Попробуйте вот так:

Этот вопрос является сложным в java (и, вероятно, также на другом языке).

Целое число — это 32-разрядный знаковый тип данных, но Integer.toBinaryString() возвращает строковое представление целочисленного аргумента в виде целого числа без знака в базе 2.

Таким образом, Integer.parseInt(Integer.toBinaryString(X),2) может генерировать исключение (подписанное или неподписанное).

Безопасный способ-использовать Integer.toString(X,2); это создаст что-то менее элегантное:

Но это работает.

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

Двоичное представление заданного int x с левыми дополненными нулями:

Простое и довольно простое решение.

Он работает со знаковыми и беззнаковыми значениями, используемыми мощными битовыми манипуляциями, и генерирует первые нули слева.

Похожие вопросы:

Ну, это вопрос низкого уровня Предположим, я храню число (конечно, компьютер хранит число в двоичном формате) Как я могу напечатать его в десятичном формате. Это очевидно в высокоуровневой.

В C#, как я могу вывести число в двоичном виде на консоль? Например, если у меня есть uint со значением 20, как я могу распечатать на консоль: 00010100 (который равен 20 в двоичном формате)?

я пытаюсь преобразовать строку, содержащую 16-разрядное число в двоичном виде, в целое значение. Это домашнее задание, и я должен использовать scanf (%1d. ). Проблема, с которой я сталкиваюсь.

Как я могу представить целое число в двоичном виде? так что я могу напечатать 7 как 111

Как я могу представить целое число без знака в двоичном виде ?

Я где-то читал, что: Наименьшее целое число больше lg N является ли количество битов, необходимых для представим N в двоичном виде, таким же образом что наименьшее целое число больше, чем log10.

Есть ли способ заставить SQLite вывести целое число без знака в упакованном / двоичном формате? Я хочу, чтобы SQLite производил эквивалент функции perl print pack(‘I’, 1_234_567_890), где каждое.

Допустим, у меня есть 16-битное целое число 259 (0000000100000011 в двоичном формате), и я хочу записать его в поток байтов в Go. Байт-это только 8 бит, так как я могу разделить целое число на.

Я посмотрел несколько другой способ преобразования двоичного в целое число в JAVA. Но я не мог понять, почему это работает? int res = 0; res += 1

Программирование на C, C# и Java

Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы

ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode

Читать еще:  Java lang exceptionininitializererror

Двоичная система счисления: как переводить, как реализовать на C и C#

Что такое двоичная система счисления?

Это такая бинарная система счисления (бинарная, потому что у неё имеется лишь два основания, т. е. две цифры – “0” и “1”), которая используется в самой основе компьютера, так как в компьютерных схемах, процессорах, платах имеются, так называемые, выключатели (или биты). Если на какой-либо схеме выключатель поставлен в позицию выкл., то ему соответствует цифра “0”, если вкл. – “1”. Благодаря таким вот массовым чередованиям позиций вклвыкл и соответствующим им единиц и нулей и работают абсолютно все компьютеры.

Последовательность этих цифр, приводящая к каким-либо результатам в работе компьютера, называется машинным кодом – это самый сложный и самый низкий язык программирования, но раньше люди умудрялись программировать и на нём. Сейчас же эти коды обрамляются в более легкие и понятные ключевые слова, и формы, которые в последствии составляют различные языки программирования. Абсолютно все языки программирования в своей основе имеют под собой работу машинного кода, любая функция, любой оператор, любой метод записан в машинном коде в виде огромной последовательности единиц и нулей. Любой printf в С или Console.WriteLine обязательно разлагаются для компьютера на машинный код, только так он и может понять, что мы от него хотим.

Переводом исходного кода какого-либо языка программирования в машинный код занимается компилятор.

Алгоритм перевода в двоичную систему счисления из десятеричной.

Теперь рассмотрим алгоритм перевода каких-либо чисел из стандартной, десятеричной системы счисления в двоичную.

Итак, например, у нас имеется число 12 в десятеричной системе счисления, давайте переведем его в двоичную. Можно сделать это несколькими формами записи, кому как удобно.

Рассмотрим первый вариант. Он будет похож на несколько видоизменённое деление в столбик, и выглядеть будет вот так:

Теперь разберём, что тут написано. Сначала мы, как и в делении в столбик, пишем число, которое мы хотим делить (12), и число, на которое делим (в двоичной системе счисления это всегда 2).

12, делённое на 2 без остатка будет равно 6. Записываем это как положено в делении в столбик.

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

Рассмотрим это правило поподробнее. Мы уже сказали, что 12 / 2 =6. Остатка у нас нет. Значит мы пишем ноль. В данном методе разбора мы пишем его под цифрой 6.

Кусочек двоичного кода мы уже получили. Вычисляем дальше.

Теперь мы делим 6 на 2. Получается 3, и опять деление прошло без остатка – опять мы пишем, уже под тройкой, ноль.

Теперь делим 3 на 2. На этот раз мы понимаем, что получается ответ с остатком – 1 и 0.5. Если происходит такое, то мы откидываем полученный остаток и делим полученное число без остатка на два, при этом подписываем ниже единицу.

Далее нам стоит запомнить, что мы всегда делим последнюю единицу на два. Всегда после того или иного вычисления двоичного числа у нас так или иначе в итоге получается число 1 (как на примере, при делении 3 на 2). И абсолютно всегда мы его делим на 2. И абсолютно всегда последней цифрой в последовательности наших нулей и единиц будет цифра 1, так как все числа в двоичной системе счисления начинаются с единицы (исключение – 0, в двоичной системе счисление он и будет записан как 0).

Мы поделили наше число 12, и у нас получилась последовательность: два нуля и две единицы. Однако это ещё не всё. Последний аспект, который надо запомнить – мы считываем двоичное число снизу вверх .

Поэтому мы считаем нашу последовательность “с конца”, и у нас получается число 1100. Это и есть ответ.

Теперь давайте рассмотрим вторую форму записи такого деления. Она менее громоздка, но по сути является той же самой формой деления.

Здесь мы просто делим получаемые числа на два через черту, и, если частное получается без остатка, через тире пишем 0, если с остатком – 1. Опять же не забываем округлять числа с остатком в меньшую сторону, делить последнюю единицу на двойку и считывать последовательность в обратном порядке.

Читать еще:  Webbrowser c javascript

Реализация перевода числа из десятичной системы счисления в двоичную на языке C#

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

В одном из наших материалов мы рассмотрели определение двоичного числа. Оно имеет самый короткий алфавит. Только две цифры: 0 и 1. Примеры алфавитов позиционных систем счисления приведены в таблице.

Позиционные системы счисления

Название системы

Основание

Алфавит

Для перевода небольшого числа из десятичного в двоичное, и обратно, лучше пользоваться следующей таблицей.

Таблица перевода десятичных чисел от 0 до 20 в двоичную систему счисления.

десятичное

число

двоичное число

десятичное

число

двоичное число

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

Как сделать перевод из одной системы счисления в другую? В информатике существует несколько простых способов перевода десятичных чисел в двоичные числа. Рассмотрим два из них.

Способ №1.

Допустим, требуется перевести число 637 десятичной системы в двоичную систему.

Делается это следующим образом: отыскивается максимальная степень двойки, чтобы два в этой степени было меньше или равно исходному числу.

В нашем случае это 9, т.к. 2 9 =512, а 2 10 =1024, что больше нашего начального числа. Таким образом, мы получили число разрядов результата. Оно равно 9+1=10. Значит, результат будет иметь вид 1ххххххххх, где вместо х может стоять 1 или 0.

Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 637-2 9 =125. Затем сравниваем с числом 2 8 =256. Так как 125 меньше 256, то девятый разряд будет 0, т.е. результат уже примет вид 10хххххххх.

2 7 =128 > 125, значит и восьмой разряд будет нулём.

2 6 =64, то седьмой разряд равен 1. 125-64=61 Таким образом, мы получили четыре старших разряда и число примет вид 10011ххххх.

2 5 =32 и видим, что 32 4 =16 1001111ххх. Остаток 29-16=13.

2 3 =8 10011111хх. 13-8=5

2 2 =4 10011111хх, остаток 5-4=1.

2 1 =2 > 1 => 100111110х, остаток 2-1=1.

2 0 =1 => 1001111101.

Это и будет конечный результат.

Способ №2.

Правило перевода целых десятичных чисел в двоичную систему счисления, гласит:

  1. Разделим an−1an−2. a1a=an−1⋅2 n−1 +an−2⋅2 n−2 +. +a⋅2 0 на 2.
  2. Частное будет равно an−1⋅2n−2+. +a1, а остаток будет равен
  3. Полученное частное опять разделим на 2, остаток от деления будет равен a1.
  4. Если продолжить этот процесс деления, то на n-м шаге получим набор цифр: a,a1,a2. an−1, которые входят в двоичное представление исходного числа и совпадают с остатками при его последовательном делении на 2.
  5. Таким образом, для перевода целого десятичного числа в двоичную систему счисления нужно последовательно выполнять деление данного числа и получаемых целых частных на 2 до тех пор, пока не получим частное, которое будет равно нулю.

Исходное число в двоичной системе счисления составляется последовательной записью полученных остатков. Записывать его начинаем с последнего найденного.

Переведём десятичное число 11 в двоичную систему счисления. Рассмотренную выше последовательность действий (алгоритм перевода) можно изобразить так:

Получили 1110=10112.

Пример:

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

Перевод чисел в двоичную, шестнадцатеричную, десятичную, восьмеричную системы счисления

Пример №2 . Представить двоичное число 101.102 в нормализованном виде, записать в 32-битом стандарте IEEE754.
Таблица истинности

Способы представления чисел

Алгоритм перевода чисел из одной системы счисления в другую

Пример №1 .


Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже).

Для перевода числа из двоичной системы счисления в восьмиричную (шестнадцатиричную) необходимо от запятой вправо и влево разбить двоичное число на группы по три (четыре – для шестнадцатиричной) разряда, дополняя при необходимости нулями крайние группы. Каждую группу заменяют соответствующей восьмиричной или шестнадцатиричной цифрой.

Пример №2 . 1010111010,1011 = 1.010.111.010,101.1 = 1272,518
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3 . 1010111010,1011 = 10.1011.1010,1011 = 2B12,13HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13

Перевод чисел из 2 , 8 и 16 в десятичную систему исчисления производят путем разбивания числа на отдельные и умножения его на основание системы (из которой переводится число) возведенное в степень соответствующую его порядковому номеру в переводимом числе. При этом числа нумеруются влево от запятой (первое число имеет номер 0) с возрастанием, а в правую сторону с убыванием (т.е. с отрицательным знаком). Полученные результаты складываются.

Читать еще:  Ошибка 633 модем или другое устройство

Пример №4 .
Пример перевода из двоичной в десятичную систему счисления. Пример перевода из восьмеричной в десятичную систему счисления. Пример перевода из шестнадцатеричной в десятичную систему счисления.

Еще раз повторим алгоритм перевода чисел из одной системы счисления в другую ПСС

  1. Из десятичной системы счисления:
    • разделить число на основание переводимой системы счисления;
    • найти остаток от деления целой части числа;
    • записать все остатки от деления в обратном порядке;
  2. Из двоичной системы счисления
    • Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;
    • Для перевода числа в восьмеричную необходимо разбить число на триады.
      Например, 1000110 = 1 000 110 = 1068
    • Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
      Например, 1000110 = 100 0110 = 4616

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

Алгоритм перевода чисел из одной системы счисления в другую

1. Из десятичной системы счисления:

o разделить число на основание переводимой системы счисления;

o найти остаток от деления целой части числа;

o записать все остатки от деления в обратном порядке;

2. Из двоичной системы счисления

o Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;

o Для перевода числа в восьмеричную необходимо разбить число на триады.
Например, 1000110 = 1 000 110 = 1068

o Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
Например, 1000110 = 100 0110 = 4616

Таблицы для перевода:

Рассмотрим основные правила перевода.

1. Для перевода двоичного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 2, и вычислить по правилам десятичной арифметики:

При переводе удобно пользоваться таблицей степеней двойки:

Таблица 4. Степени числа 2

Пример .Число перевести в десятичную систему счисления.

2. Для перевода восьмеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 8, и вычислить по правилам десятичной арифметики:

При переводе удобно пользоваться таблицей степеней восьмерки:

Таблица 5. Степени числа 8

Пример .Число перевести в десятичную систему счисления.

3. Для перевода шестнадцатеричного числа в десятичное необходимо его записать в виде многочлена, состоящего из произведений цифр числа и соответствующей степени числа 16, и вычислить по правилам десятичной арифметики:

При переводе удобно пользоваться таблицей степеней числа 16:

Таблица 6. Степени числа 16

Пример .Число перевести в десятичную систему счисления.

Для перевода десятичного числа в двоичную систему его необходимо последовательно делить на 2 до тех пор, пока не останется остаток, меньший или равный 1. Число в двоичной системе записывается как последовательность последнего результата деления и остатков от деления в обратном порядке.

Пример.Число перевести в двоичную систему счисления.

Для перевода десятичного числа в восьмеричную систему его необходимо последовательно делить на 8 до тех пор, пока не останется остаток, меньший или равный 7. Число в восьмеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.

Пример.Число перевести в восьмеричную систему счисления.

Для перевода десятичного числа в шестнадцатеричную систему его необходимо последовательно делить на 16 до тех пор, пока не останется остаток, меньший или равный 15. Число в шестнадцатеричной системе записывается как последовательность цифр последнего результата деления и остатков от деления в обратном порядке.

Пример.Число перевести в шестнадцатеричную систему счисления.

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

Пример.Число перевести в восьмеричную систему счисления.

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

Пример.Число перевести в шестнадцатеричную систему счисления.

Ссылка на основную публикацию
Adblock
detector