728x90
< 📝 문제 >
16진수 1자리는 2진수 4자리로 표시된다.
N자리 16진수가 주어지면 각 자리 수를 4자리 2진수로 표시하는 프로그램을 만드시오.
단, 2진수의 앞자리 0도 반드시 출력한다.
예를 들어 47FE라는 16진수를 2진수로 표시하면 다음과 같다.
0100011111111110
< ❓ 생각 >
< 💻 코드 >
1.
# 테스트 케이스의 수
T = int(input())
for tc in range(1,T+1):
# N자리 16진수
N, num16 = input().split()
print(f'#{tc}',end=' ')
for i in range(int(N)):
# 16진수 -> 10진수
num10 = int(num16[i],16)
# 10진수 -> 2진수
# 4자리 채우기
print(format(num10,'b').zfill(4),end='')
print()
2.
T = int(input())
for tc in range(1, 1 + T):
N, data = input().split()
result = ''
for i in range(int(N)):
# 16진수 -> 10진수
if data[i] in '0123456789':
num = int(data[i])
else:
num = ord(data[i]) - ord('A') + 10
# 10진수 -> 2진수
for j in range(3, -1, -1):
result += "1" if num & (1 << j) else "0"
print(f'#{tc} {result}')
< ❗ >
int(16진수, 16) : 16진수 - > 10진수
format(,) : 2번째 인자 'b' : 2진수, 'o' : 8진수, 'x' : 16진수
.zfill(n) : 지정 된 자리 수(n)보다 짧을 경우 앞에 0으로 채우기
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[SWEA] 2105. 디저트 카페 - Python (0) | 2022.03.25 |
---|---|
[SWEA] 1952. 수영장 - Python (0) | 2022.03.25 |
[SWEA] 14142. 이진수2 - Python (0) | 2022.03.22 |
[SWEA] 1240. 단순 2진 암호코드 - Python (0) | 2022.03.21 |
[Python] 2819. 격자판의 숫자 이어 붙이기 - Python (0) | 2022.03.16 |
댓글