336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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 




+ Recent posts