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

Когда я начал искать сегодняшнюю задачу, основанную на стеках в Python. Я столкнулся с проблемой преобразования десятичных чисел в двоичные числа. Это основная проблема, но достаточно хорошая, если вы хотите улучшить свои навыки. Таким образом, эта проблема заключалась в том, что нам нужно изменить данное десятичное число на двоичное.

Преобразование десятичного целого числа в двоичное

In this coding exercise, you are required to use the stack data structure(List can also be used) to convert integer values to their binary equivalent.

Метод деления на 2

На изображении ниже показано, как использовать метод деления на 2 для вычисления двоичного эквивалента целого числа.

Решение

Мы будем использовать список Python в качестве стека, а затем воспользуемся методом Division By 2 для решения этой проблемы.
Вот подход: -
Чтобы преобразовать целое число в двоичное, начните с рассматриваемого целого числа и разделите его на 2, обращая внимание на частное и остаток.
Продолжайте делить частное на 2, пока не получите частное, равное нулю. Затем просто выпишите остатки в обратном порядке.

Алгоритм:

Store the remainder when the number is divided by 2 in an array.
Divide the number by 2
Repeat the above two steps until the number is greater than zero.
Print the array in reverse order now.

Например:

Если двоичное число равно 10.
Шаг 1: Остаток при делении 10 на 2 равен нулю. Следовательно, arr[0] = 0.
Шаг 2: Разделите 10 на 2. Новое число: 10/2 = 5.
Шаг 3: Остаток при делении 5 на 2 равен 1. Следовательно, arr [1] = 1.
Шаг 4: Разделите 5 на 2. Новое число 5/2 = 2.
Шаг 5: Остаток при делении 2 на 2 равен нулю. Следовательно, arr[2] = 0.
Шаг 6: Разделите 2 на 2. Новое число: 2/2 = 1.
Шаг 7: Остаток при делении 1 на 2 равен 1. Следовательно, arr [3] = 1.
Шаг 8: Разделите 1 на 2. Новое число равно 1/2 = 0.
Шаг 9: Поскольку число стало = 0. Распечатайте массив в обратном порядке. Следовательно, эквивалентное двоичное число равно 1010.

def dec2bin(num):
    s=[]
    while num!=0:
        s.append(num%2)
        num=num//2
    binary = ""
    while len(s)!=0:
        binary+=str(s.pop())
    return binary

Спасибо за чтение блога и похлопайте, если вам понравилось его читать.

Ссылка на блокнот присутствует здесь.