Преобразование числа в двоичный с фиксированной длиной - программирование
Подтвердить что ты не робот

Преобразование числа в двоичный с фиксированной длиной

Скажем, я получаю случайное число от 1 до 127. Я меняю номер на двоичный код и удаляю из него 0b с помощью кода:

key_one= int(raw_input("Enter key (0 <= key <= 127): "))

if key_one in range(128):
    bin_key_one=bin(key_one)[2:]
print bin_key_one
else:
    print "You have to enter key (0 <= key <= 127)"

Теперь я хочу сделать его длиной 7 символов, заполнив начало нулями при необходимости. Я думаю, мне нужно использовать цикл for, но может ли кто-нибудь показать мне, как это сделать?

4b9b3361

Ответ 1

Нет, нет.

>>> '{0:07b}'.format(12)
'0001100'

Ответ 2

Итак, Python имеет строковый метод .zfill() для этого:

>>> '1'.zfill(7)
'0000001'
>>> '10010'.zfill(7)
'0010010'

Ответ 3

С новым Python 3.6 новым f-strings вы можете теперь:

key_one = int(input("Enter key (0 <= key <= 127): "))

if key_one in range(128):
    bin_key_one = f'{key_one:07b}'
    print(bin_key_one)
else:
    print("You have to enter key (0 <= key <= 127)")

Ответ 4

Попробуйте следующее:

for i in range(1, 127):
'0'*(7-len(bin(i)[2:]))+bin(i)[2:]