Просто введите 0b1111111111 в интерактивном интерфейсе python:
>>> 0b11111111 255
Ответ 3
Другой способ сделать это - использовать bitstring модуль:
>>> from bitstring import BitArray >>> b = BitArray(bin='11111111') >>> b.uint 255
Обратите внимание, что целое число без знака (uint) отличается от целого числа со знаком (int):
>>> b.int -1
Ваш вопрос действительно требует представления целого числа без знака; это важное различие.
Модуль bitstring не является обязательным требованием, но в нем есть множество эффективных методов для преобразования входных данных в биты и из них в другие формы, а также для манипулирования ими.
Ответ 4
Использование int с base - правильный путь. Я делал это до того, как обнаружил, что int также принимает base. По сути, это сокращение, применяемое для понимания списка примитивного способа преобразования двоичного кода в десятичный ( например 110 = 2**0 * 0 + 2 ** 1 * 1 + 2 ** 2 * 1)
add = lambda x,y : x + y reduce(add, [int(x) * 2 ** y for x, y inzip(list(binstr), range(len(binstr) - 1, -1, -1))])