Почему str (num) для двоичного числа возвращает только определенные цифры в виде строки? - PullRequest
0 голосов
/ 21 марта 2019

У меня есть номер 000000000000001011, и я хочу повторить это. Я использовал str (num) для итерации по нему, но он возвращает «11» в качестве выходной строки. Почему это происходит?

1 Ответ

0 голосов
/ 21 марта 2019

Здесь играют несколько вещей.

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

number = int( user_input_str, 2 )  # user_input_str given in binary

Но после внутреннего хранения лишние цифры (для всех целей и целей) теперь исчезают.

Чтобы перебрать цифры, вам необходимо преобразовать их обратно вдвоичная строка:

number_str = '{0:b}'.format( number ).zfill( 18 )

или без начальных нулей:

number_str = '{0:b}'.format( number )

Это можно легко повторить:

for digit in number_str:
    # do whatever with each digit

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...