Преобразование десятичного числа в двоичное, как получить 8-разрядный двоичный файл? - PullRequest
1 голос
/ 19 апреля 2019

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

Я уже выяснил само преобразование, но мне нужно выяснить, как добавить нули в начало, если оно меньше 8 бит.

old_number = int(input("Enter whole number here: "))
number = old_number
binary_translation = 0

while number > -1:
    if number > 128 or number == 128:
        binary_translation = binary_translation + 10000000
        number = number - 128
    elif number > 64 or number == 64:
        binary_translation = binary_translation + 1000000
        number = number - 64
    elif number > 32 or number == 32:
        binary_translation = binary_translation + 100000
        number = number - 32

и т.д. до нуля ...

print("The number", old_number, "is", binary_translation, "in binary.")

Результат, который я хочу, если число = 39 - 00100111

Результат, который я получу, если число = 39 - 100111

1 Ответ

0 голосов
/ 19 апреля 2019

TLDR: Используйте его: '{:0>8}'.format(str(bin(a))[2:])


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

>>> number = 39
>>> bin(number) 

'0b100111'

Вы можете обрезать его:

>>> str(bin(number))[2:]

'100111'

И добавьте вперед нули:

>>> '{:0>8}'.format(str(bin(a))[2:])

'00100111'

Вот вам последняя строчка: '{:0>8}'.format(str(bin(a))[2:])

Если вы хотите узнать больше об этом: '{:0>8}' магия, вы можете прочитать эту статью.

...