SWE 5185 이진수
- N자리 16진수가 주어지면 각 자리 수를 4자리 2진수로 표시하는 프로그램 만들기
- 2진수의 앞자리 0도 반드시 출력해줘야 하기 떄문에, 0이 필요한 개수를 계산해서 더해준다
for rounds in range(int(input())):
a, b = input().split()
b = format(int(b, 16), 'b')
num = int(a)*4 - len(str(b))
result = '0'*num + b
print(f"#{rounds+1} {result}")
내장함수를 쓰지 않는다면
- 각 알파벳에 맞는 숫자를 딕셔너리 형태로 저장
- input()을 문자열로 받음
- 16진수를 한자리씩 나눠서, 이를 4번 2로 나누도록 포문 작성해주는 함수 작성
- 한 자리씩 위에서 작성한 함수를 적용시켜서 결과를 생성
Conversion = {'0':0,'1':1, '2':2, '3':3, '4':4,'5':5,'6':6,'7':7,'8':8, '9':9,
'A':10,'B':11,'C':12, 'D':13,'E':14,'F':15}
def Binary(num):
global result
mok, nam = 0, 0
for i in range(4):
mok = num // 2
nam = num % 2
result = str(nam) + result
num = mok
return
TC = int(input())
for tc in range(1, TC+1):
N, decimal_num = map(str, input().split())
final_result = ''
for i in decimal_num:
result = ''
Binary(Conversion[i])
final_result += result
print('#%d %s'%(tc, final_result))
참고자료 [SWexperacademy]https://swexpertacademy.com [python_16진수_2진수]https://www.daleseo.com/python-int-bases/ [참고자료_해리의_데브로그]https://tothefullest08.github.io/algorithm/2019/07/21/1_5185_%EC%9D%B4%EC%A7%84%EC%88%98/