2013-11-06 4 views
-1
num1 = bin(input()) 
num2 = bin(input()) 

answer = int(num1 ,2) + int(num2,2) 

print (bin(answer)) [2:] 

input ("press enter to finish") 

Как это сделать, чтобы я мог поместить 2 двоичных числа и добавить их, это только позволяет мне вставить его, а затем он просто дает мне двоичное представление 1-го.Я не вижу, как добавить два числа

Мне действительно нужно знать, как это сделать.

+1

снова: ваш код может * * только ** работать вообще, если вы используете Python 2, ** not ** Python 3. Вы уверены, что используете Python 3? Если да, то почему вы не получаете 'TypeError' здесь? –

+1

Ваш код [отлично работает для меня] (http://ideone.com/f9Iwge). Какой вклад вы предоставляете вашему коду? Какой результат вы видите? Какой результат вы ожидаете увидеть? –

ответ

0

Не совсем уверен, если это то, что вы ищете:

#! /usr/bin/python3.2 

print (bin(int(input('>> '), 2) + int(input('>> '), 2))[2:]) 

Пример использования:

>> 100 
>> 101 
1001 
0

Это решение предполагает, что вы используете Python 2.x. Пока не ясно, если это так ...

  • Похоже, что Вы используете bin() неправильно. Вам это нужно только при преобразовании целого числа в двоичную строку.
  • Вы хотите использовать raw_input() вместо input(). Последний попытается автоматически преобразовать ввод в номер, который вам не нужен.

Итак:

num1 = int(raw_input(), 2) 
num2 = int(raw_input(), 2) 

answer = num1 + num2 

print bin(answer)[2:] 
0

Guess Я хотел бы сделать что-то вроде этого:

from __future__ import print_function 
import sys 

if sys.version_info[0]==2: input=raw_input 

def get_bin(txt): 
    while True: 
     s=input(txt) 
     try: 
      return int(s, 2) 
     except ValueError: 
      print('"{}" is not a valid binary number'.format(s)) 

li=[]    
for i in range(1,3): 
    li.append(get_bin('Enter bin number {} >>> '.format(i))) 

ans=sum(li) 
w=len(bin(ans)) 
for i, e in enumerate(li): 
    op='+' if i else ' ' 
    print('{}{:{w}b}'.format(op,e,w=w)) 

print(' ','='*w) 
print(' {:{w}b}'.format(ans,w=w)) 

На Python 2 или 3, например:

Enter bin number 1 >>> 111111 
Enter bin number 2 >>> 11 
    111111 
+  11 
    ========= 
    1000010 
Смежные вопросы