2017-12-06 2 views
0

현재 바이트 덧셈기와 관련된 파이썬 프로그램을 만들고 있습니다. 사용자가 2 개의 정수를 입력하고 함께 추가하며 실제 크기의 범위 내에있는 경우 바이트 (0에서 255)는 해당 숫자를 표시하고 8 비트 이진 형식에서 해당 값을 제공합니다. 예를 들어 계산은 1과 같습니다. 파이썬이 올바른 것으로 선언 한 이진수를 표시합니다. 계산 된 10 진수를 8 비트 바이너리로 변환합니다.

내가 바이트 동작의 ~

"허용 된 데이터 유형 및 데이터 값의 한계 (정수의 값에 대한 입력 데이터를 확인해야이 프로그램은 초과 할 수 없습니다 실제 크기를 수행하고있는 작업입니다 코딩 정수, 양의 정수에 대한 자료 10, 즉 분 00000000 및 최대 11,111,111 자료 2 또는 최소 0에서 최대 255 "

def add(): 
    Num1 = int(input("Input the first number between 0 and 255, the calculated answer must not be above 255: ")) 
    Num2 = int(input("Input the second number between 0 and 255, the calculated answer must not be above 255: ")) 

    calculatedanswer = Num1+Num2 

    if calculatedanswer >= 0 and calculatedanswer <=255: 
     print("The answer in decimal is" ,calculatedanswer,) 

     **bin(calculatedanswer)** 

    elif calculatedanswer < 0 and calculatedanswer >255: 
     print("Please ensure the added numbers are above 0 and below 255") 
     add() 

로 변환을 모두 바이너리와 소수점 형식으로 입력이 지금까지 내 코드입니다 표준 십진수를 표시하는 데 문제가 없지만 이진수를 표시하려면 실제로 bin(calculatedanswer)을 얻을 수 없습니다. 그것의 quivalent. YouTube에서 찾은이 방법을 사용해 보았습니다.

여기 내 주요 문제는 파이썬에서 "빈"이 어떻게 작동하는지에 대한 이해가 부족하다는 것입니다. 처음 사용하는 순간입니다.

문제가있는 줄에 별표를 붙였습니다.

+0

실제 출력 대 예상과 귀하의 요구 사항에 따라 이미, 당신은 당신에게 문제를 일으키는 정확한 코드를 표시해야합니다 응답 인쇄 (STR (calculatedanswer)) – noone392

+0

있습니다. 우리는 "문제"가 무엇을 의미하는지 짐작하고 있습니다. –

답변

1

당신은 인쇄에 값을해야합니까 :

>>> print(bin(160)) # This version gives the 0b prefix for binary numbers. 
0b10100000 
>>> print(format(160,'08b')) # This specifies leading 0, 8 digits, binary. 
10100000 
>>> print('{:08b}'.format(160)) # Another way to format. 
10100000 
>>> print(f'{160:08b}') # Python 3.6+ new f-string format. 
10100000 
1

당신은 당신이 말할 때 당신은 무엇을 그것은 내가 가정 결과의 0b 부분을 슬라이스하는 것입니다 인쇄 옵션 중 하나를 의미 bin 기능에 문제가 있습니다.

이 시도 :

print(bin(calculatedanswer)[2:]))

관련 문제