Если вы ищете bin() эквивалент hex(), он был добавлен в python 2.6.
Пример:
>>> bin(10) '0b1010'
Ответ 3
На самом деле в Python действительно уже есть что-то встроенное для этого, возможность выполнять такие операции, как '{0:b}'.format(42), которые дадут вам битовый шаблон (в строке) для 42, или 101010.
Если придерживаться более общей философии, то ни один язык или библиотека не предоставит своим пользователям все, что они пожелают. Если вы работаете в среде, которая предоставляет не совсем то, что вам нужно, вам следует собирать фрагменты кода по мере разработки, чтобы вам никогда не приходилось писать одно и то же дважды. Например, псевдокод:
define intToBinString, receiving intVal: if intVal is equal to zero: return"0" set strVal to "" while intVal is greater than zero: if intVal is odd: prefix "1" to strVal else: prefix "0" to strVal divide intVal by two, rounding down return strVal
который построит вашу двоичную строку на основе десятичного значения. Просто имейте в виду, что это общий фрагмент псевдокода, который может быть не самым эффективным способом сделать это, хотя, с итерациями, которые вы, кажется, предлагаете, это не будет иметь большого значения. На самом деле это просто руководство по тому, как это можно сделать.
Общая идея заключается в использовании кода из (в порядке предпочтения):
язык или встроенные библиотеки.
библиотеки сторонних производителей с подходящими лицензиями.
ваша собственная коллекция.
вам нужно написать что-то новое (и сохранить в вашей собственной коллекции на потом).
Ответ 4
Если вам нужно текстовое представление без 0b-префикса, вы могли бы использовать это: