Как сделать все биты инвертированными в python? - PullRequest
0 голосов
/ 17 января 2020

Я хочу преобразовать эти двоичные представления следующим образом.

"1111" -> "0000"
"1010" -> "0101"

Ответы [ 3 ]

6 голосов
/ 17 января 2020

Надеюсь, вы выглядите примерно так,

def convert(inp):
    return ''.join(['1','0'][int(i)] for i in inp)
convert('1010')

output

0101
0 голосов
/ 20 января 2020

Я не очень хорош в python, но я думаю, что это правильно, потому что он работал на моем компьютере.

num = input()
answer = ""
for i in range(0, len(num)):
    if num[i] == "0":
        answer += "1"
    elif num[i] == "1":
        answer += "0"
print(answer)

ввод:

0000

вывод:

1111
0 голосов
/ 17 января 2020

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

def f(x:str):
    return  '%04d' % int(bin(int(x, 2) ^ 15)[2:])

print(f("0000"))
print(f("0011"))
print(f("1010"))
print(f("1111"))
output:
1111
1100
0101
0000
...