В соответствии с int
строкой документа, требуется int
или long
тип данных
Docstring:
int(x=0) -> int or long
int(x, base=10) -> int or long
И bin
занимает str
:
Docstring:
bin(number) -> string
Так как вашсписок имеет base10
вместо base2
, он не самый красивый и не самый быстрый, я бы преобразовал ваш список base10
в тип base2
посредством приведения и выполнил бы математические расчеты.Поскольку вы упомянули, что вы заботитесь только о вычитании или сложении, я добавил переменную X, чтобы контролировать ваше вычитание или сложение.
ПРИМЕЧАНИЕ : Я предполагаю, что переменная X здесь принимает base2
отформатировано string
или int
, поэтому для вас не составит труда указать значение X = '1000'
или X = 1000
.Выдает исключение ValueError
, если вы вводите любое число, которое больше или равно 2, например: X = 1112
или X = 16
nums = [10000, 10001, 10010, 10011, 10100, 10101, 10110, 10111, 11000, 11001, 11010, 11011, 11100, 11101, 11110, 11111]
nums_string = [str(num) for num in nums]
X = 1
nums_sum = [bin(int(num, base=2) + int(str(X), base=2)) for num in nums_string]
nums_sum
['0b10001',
'0b10010',
'0b10011',
'0b10100',
'0b10101',
'0b10110',
'0b10111',
'0b11000',
'0b11001',
'0b11010',
'0b11011',
'0b11100',
'0b11101',
'0b11110',
'0b11111',
'0b100000']
X = -1
nums_sum = [bin(int(num, base=2) + int(str(X), base=2)) for num in nums_string]
nums_sum
['0b1111',
'0b10000',
'0b10001',
'0b10010',
'0b10011',
'0b10100',
'0b10101',
'0b10110',
'0b10111',
'0b11000',
'0b11001',
'0b11010',
'0b11011',
'0b11100',
'0b11101',
'0b11110']
X = -10000
nums_sum = [bin(int(num, base=2) + int(str(X), base=2)) for num in nums_string]
nums_sum
['0b0',
'0b1',
'0b10',
'0b11',
'0b100',
'0b101',
'0b110',
'0b111',
'0b1000',
'0b1001',
'0b1010',
'0b1011',
'0b1100',
'0b1101',
'0b1110',
'0b1111']
X = '-10000'
nums_sum = [bin(int(num, base=2) + int(str(X), base=2)) for num in nums_string]
nums_sum
['0b0',
'0b1',
'0b10',
'0b11',
'0b100',
'0b101',
'0b110',
'0b111',
'0b1000',
'0b1001',
'0b1010',
'0b1011',
'0b1100',
'0b1101',
'0b1110',
'0b1111']
X = '-11111'
nums_sum = [bin(int(num, base=2) + int(str(X), base=2)) for num in nums_string]
nums_sum
'-0b1111',
'-0b1110',
'-0b1101',
'-0b1100',
'-0b1011',
'-0b1010',
'-0b1001',
'-0b1000',
'-0b111',
'-0b110',
'-0b101',
'-0b100',
'-0b11',
'-0b10',
'-0b1',
'0b0']
В зависимости от операций, которые вы хотите автоматизировать, коддля выполнения зависит.