преобразователь двоичного кода в десятичный (включая отрицательный)

avatar
kaila cochran
8 апреля 2018 в 01:37
168
1
-1

Мне нужно преобразовать двоичные значения, такие как "1010", в десятичные значения. это должно включать отрицательный двоичный код.

def BinaryToDecimal (n):

    n1 = n
    decimal = 0
    i = 0
    n = 0
    while(n != 0):
      dec = n % 10
      decimal = decimal + dec * pow(2, i)
      n = n//10
      i += 1
    print(decimal)

Это то, что у меня есть, но оно не работает. Я не уверен, что еще делать. Пожалуйста помоги! Мне не разрешено использовать какие-либо причудливые библиотеки Python, я должен писать код вручную.

Источник
Free Url
8 апреля 2018 в 01:42
1

Вы устанавливаете n = 0, а затем немедленно проверяете, n != 0 в цикле while. изменить это и оценить

Free Url
8 апреля 2018 в 01:49
0

Вы передаете двоичное число как строку или целое число? Я не знаю, определен ли оператор модуля для строк.

Ответы (1)

avatar
Lemayzeur
8 апреля 2018 в 02:03
0

Это будет работать:

def BinaryToDecimal(n):
    n = str(n)
    print(int(n,2))

Вывод оболочки Python

Двоичный код в десятичный:

>>> bin_str = '11111111'
>>> int(bin_str,2)
255

Десятичные числа в двоичном виде:

>>> decimal = 255
>>> "{:b}".format(decimal)
'11111111'