Двоичное целое число в строку, показывающее получение одинакового числа Python - PullRequest
0 голосов
/ 20 января 2019

Плохое преобразование двоичного целого числа в строку

Я попытался выполнить разбор в char, binary, а затем в string, но он не работает должным образом, как я хочу.

def xorGate(self):
    xorNumber= ''
    #receiving the 2 integers
    numBin1 = self.__sanearInput(self.inputParams[0])
    numBin2 = self.__sanearInput(self.inputParams[1])
    #act
    xorNumber=numBin1^numBin2
    #result
    xorNumber=str(xorNumber)
    self.outputParams.append(xorNumber)

Я ставлю в качестве параметров "1000" и "1010".Наконец, он анализирует результат, чтобы получить строку «26» вместо «0010».

1 Ответ

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

Удаление метода класса, который не имеет отношения к вопросу, если я сделаю это:

>>> numbin1 = 0b1000
>>> numbin2 = 0b1010
>>> xornumber = numbin1 ^ numbin2

Я получу

>>> xornumber
2
>>> bin(xornumber)
'0b10'

, который является правильным ответом.Происходит то, что вы используете константы 1000 и 1010, которые являются десятичными константами, и ожидаете, что Python интерпретирует их как двоичные только потому, что вы используете оператор ^.Например:

>>> bin(1000)
'0b1111101000'
>>> bin(1010)
'0b1111110010'
>>> bin(1000 ^ 1010)
'0b11010'

и 0b11010 равно 26.

Чтобы интерпретировать входную строку пользователя, состоящую из 1 и 0, как целое число, представленное в двоичном виде,проконсультируйтесь этот ответ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...