2진수를 10진수로
10진수를 2진수로 변환하는 실습문제.
전제조건으로 무조건 옳은 입력 값만 들어오는 것으로 하면,
1) 2진수 -> 10진수로 바꾸는 코드를 먼저 작성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | binary = input() # binary = int(raw_input()) decimal = 0 number = binary exp2 = 1 while(number > 0): identity = number % 10 number /= 10 if(identity == 1): decimal += exp2 #elif(identity == 0): 이 경우는 더하지 않으므로 생략한다. exp2 *= 2 print decimal | cs |
입력으로 binary 이진수가 입력이 되며, 결과로 decimal값을 돌려준다.
binary ; 입력인 2진수 값을 저장하는 변수
number ; decimal를 계산하기 위해, binary을 값을 사용하기 위한 변수
exp2 ; 가장 작은 binary 1자리 수부터 변환을 진행할 때, decimal 값을 계산하기 위해 2^n을 계산하기 위한 변수
identity ; binary 한자리를 판별하기 위한 변수
decimal ; binary 2 decimal의 결과로 원하는 10진수 출력을 보이기 위한 변수
2) 10진수 -> 2진수로 바꾸는 코드를 작성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | decimal = input() # binary = int(raw_input()) binary = '' number = decimal exp2 = 1 while(exp2 < number): exp2 *= 2 while(number >= 1): exp2 /= 2 if (number >= exp2): number -= exp2 binary = binary + '1' elif (number < exp2): binary = binary + '0' print binary | cs |
입력으로 decimal 십진수가 입력이 되며, 결과로 binary 값을 돌려준다.
decimal ; 입력인 10진수 값을 저장하는 변수
number ; binary를 계산하기 위해, decimal을 값을 사용하기 위한 변수
exp2 ; 가장 큰 이진수 값부터 계산하여, binary를 계산하기 위한 변수
binary ; 10진수 decimal 값을 binary로 바꾸기 위한 변수
다르게 작성할 수도 있으니, 이렇게도 작성하기도 하는구나 정도로만 생각하자.
해당 문제는 BOJ 에 있으므로 풀어보기로 하자. 아래는 코드인데
https://www.acmicpc.net/problem/11005
(+) 10진수 -> n진수로 바꾸는 코드를 작성한다. 이때 함수로 작성을 하겠다.
n진수는 총 36진수까지 할 수 있다.
0 - 9 ,A - Z
'2017 > python_tutoring' 카테고리의 다른 글
소프트웨어적사고 튜터링 7주차(python-함수) (0) | 2017.07.22 |
---|---|
argument(인자) 와 parameter(매개변수) 차이 (0) | 2017.07.22 |
소프트웨어적 사고 튜터링 5주차 수업문제 (0) | 2017.07.22 |
소사 5주차 이전 강의시간 과제 리뷰 (피보나치수열+try-except) (0) | 2017.07.22 |
소사 5주차 이전 강의시간 실습 리뷰 (0) | 2017.07.22 |