(1,3,6) のように 2 進数を実 2 進数として表現するリストを表現しようとしてい0b100101
ます。まず、それらを 2^1+2^3+2^6 として合計してから、バイナリに変換しようとします
with open('DATA.txt') as f:
for line in f:
myLine=line.rstrip().split("\t")
print [bin(2**int(l)) for l in myLine[1:5]]
a
以下のようなリストに変換したところ
>>> a=['0b10000000000000000000000000', '0b100000000000', '0b100000000000000000000000000000']
>>> a[1]|a[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for |: 'str' and 'str'
>>> bin(a[1])+bin(a[2])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an index
そう
べき乗ベクトルを 2 進数に変換するにはどうすればよいですか。つまり、べき乗 2 進数表現から実際の 2 進数表現に変換するにはどうすればよいですか?
簡単な例
入力
['0b10000000000000000000000000', '0b100000000000', '0b100000000000000000000000000000']
意図した出力
0b100010000000000000100000000000