Как перевести десятичное число в двоичное python
Перейти к содержимому

Как перевести десятичное число в двоичное python

  • автор:

 

Преобразование типов#

В Python есть несколько полезных встроенных функций, которые позволяют преобразовать данные из одного типа в другой.

int преобразует строку в int:

С помощью функции int можно преобразовать и число в двоичной записи в десятичную (двоичная запись должна быть в виде строки)

Преобразовать десятичное число в двоичный формат можно с помощью bin :

Аналогичная функция есть и для преобразования в шестнадцатеричный формат:

Функция list преобразует аргумент в список:

Функция set преобразует аргумент в множество:

Эта функция очень полезна, когда нужно получить уникальные элементы в последовательности.

tuple #

Функция tuple преобразует аргумент в кортеж:

Это может пригодиться в том случае, если нужно получить неизменяемый объект.

Перевод чисел в Python

В данном материале мы рассмотрим встроенные возможности по переводу чисел в языке программирования Python, а также напишем универсальную функцию по их переводу.

Перевод чисел из десятичной системы счисления
Для перевода числа из десятичной системы счисления в двоичную можно воспользоваться оператором bin(). В качестве аргумента нужно передать значение в виде числа, а оператор вернет строку с двоичным числом. У результата также будет префикс 0b, указывающий на основание системы счисления.

Python Вывод

Для перевода в восьмеричную систему счисления есть оператор oct(). Он также возвращает строку с восьмеричным числом и префиксом 0o.

Python Вывод

При переводе в шестнадцатеричную систему счисления воспользуемся оператором hex(). Он вернет строку шестнадцатеричным числом и префиксом 0x

Python Вывод

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

Python Вывод

А теперь напишем универсальную функцию convert_to() по переводу чисел из десятичной системы счисления в систему счисления в любым основанием. Наша функция будет ограничена только наличием символов в переводимой системе счисления.
Данная функция принимает три аргумента, два из которых обязательные. Это десятичное целое число number и основание переводимой системы счисления base. Третий аргумент upper служит для указания регистра вывода строки переведенного числа. По умолчанию он установлен в значение False.

Во второй строке мы задаем переменную digits, содержащую набор символов цифр и букв английского языка. Она нам понадобится для составления символов переведенного числа на основании остатков.
В третьей строке мы проверяем основание переданной системы счисления на его длину. Если основание окажется больше, чем количество символов в нашей строке digits, то мы прекращаем выполнение функции через вызов оператора return и возвращаем None. Это такая своеобразная защита функции от неправильно переданных аргументов. Если мы попробуем перевести число в большую систему счисления по основанию, чем у нас есть символов для его записи, то мы его не сможем записать.
Дальше заведем переменную result для хранения результата работы функции и зададим ей значение в виде пустой строки. Теперь с помощью цикла с условием будем находить остаток от деления числа number на основание base, а также уменьшать number в base раз используя целочисленное деление.
Остаток от деления числа на основание переводимой системы счисления мы будем использовать как индекс для получения символа в строке digits и добавлять его к результату result. Добавлять это значение следует слева, т.к. самый первый остаток является самым правым разрядом. Цикл выполняется до тех пор, пока исходное значение переменной number больше нуля.
После завершения цикла мы вернем результат через вызов return. Для этого воспользуемся тернарным оператором и проверим наш третий аргумент. Если он будет в значении True, то для строки result вызовем строкой метод .upper() который заменит все прописные символы английского языка на строчные. Иначе, вернем результат как есть.

А теперь проверим работу нашей функции. Для этого попробуем перевести числа в , , 16ю, 32ю и 64ю системы счисления. Для перевода в 32ю систему счисления мы укажем третий необязательный аргумент upper и зададим ему значение True.

Python Вывод

Перевод чисел в десятичную систему счисления
Для обратного перевода в десятичную систему счисления мы будем использовать оператор int(). Для этого передадим ему два аргумента, первый — это строка с числом в какой-то системе счисления, а второй — это основание системы счисления самого числа. По умолчанию для этого необязательного аргумента стоит значение равное 10.
В качестве самого числа нужно обязательно передать строку. Строка может содержать или само число или число с префиксом системы счисления.
Для перевода из двоичной системы счисления:

Python Вывод
Python Вывод

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

Python Вывод
Python Вывод

И для перевода из шестнадцатеричной системы счисления:

Python Вывод
Python Вывод

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

 

Convert decimal to binary in python [duplicate]

Is there any module or function in python I can use to convert a decimal number to its binary equivalent? I am able to convert binary to decimal using int(‘[binary_value]’,2), so any way to do the reverse without writing the code to do it myself?

8 Answers 8

all numbers are stored in binary. if you want a textual representation of a given number in binary, use bin(i)

Without the 0b in front:

You can also use a function from the numpy module

which can also handle leading zeros:

I agree with @aaronasterling’s answer. However, if you want a non-binary string that you can cast into an int, then you can use the canonical algorithm:

For the sake of completion: if you want to convert fixed point representation to its binary equivalent you can perform the following operations:

Get the integer and fractional part.

Convert the fractional part in its binary representation. To achieve this multiply successively by 2.

Перевод из десятичной системы счисления в двоичную в Python

Статьи

Введение

В этой небольшой статье рассмотрим перевод из десятичной системы счисления в двоичную в python. Рассмотрим функцию bin() и напишем свою программу для перевода из десятичной СС в двоичную.

Функция bin()

Начнём с того, что в python существует специальная функция для перевода из десятичной системы счисления в двоичную.

bin() – функция, преобразовывающая целое число в двоичную строку. В качестве параметра принимает десятичное число.

Для примера переведём число 15 в двоичную СС с помощью функции bin():

Как мы видим, всё преобразовалось верно, ведь 15 в двоичной СС – это 1111.

Преобразование вручную

Перейдём к тому, что напишем код для преобразования десятичной СС в двоичную.

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

Для примера рассмотрим алгоритм перевода числа 15 в двоичную СС:

15 / 2 = 7, остаток 1
7 / 2 = 3, остаток 1
3 / 2 = 1, остаток 1
1 / 2 = 0, остаток 1
0 – конец деления
Итог: 11112

Теперь напишем код для реализации алгоритма:

number – переменная, в которую вводится число в десятичной СС;

numberb – переменная, хранящая остатки от деления.

Заключение

Вот мы и разобрались с вопросом перевода десятичной системы счисления в двоичную с помощью python.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *