본문 바로가기
파이썬/파이썬 알고리즘

파이썬 코드업 6027번 6027 : [기초-출력변환] 10진 정수 입력받아 16진수로 출력하기1(설명)(py)

by Go! Jake 2021. 4. 3.

  문제

본 문제는 python 의 빠른 기초 학습을 위해 설계된 문제로서 python 코드 제출을 기준으로 설명되어 있습니다. 
------

10진수를 입력받아 16진수(hexadecimal)로 출력해보자.

예시
a = input()
n = int(a)            #입력된 a를 10진수 값으로 변환해 변수 n에 저장
print('%x'% n)  #n에 저장되어있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력

참고
10진수 형태로 입력받고
%x로 출력하면 16진수(hexadecimal) 소문자로 출력된다.
(%o로 출력하면 8진수(octal) 문자열로 출력된다.)

10진법은 한 자리에 10개(0 1 2 3 4 5 6 7 8 9)의 문자를 사용하고,
16진법은 영문 소문자를 사용하는 경우에 한 자리에 16개(0 1 2 3 4 5 6 7 8 9 a b c d e f)의 문자를 사용한다.
16진수 a는 10진수의 10, b는 11, c는 12 ... 와 같다.

  입력

10진수 1개가 입력된다.

  출

16진수(소문자) 형태로 출력한다.

  풀이 - 1

a = input()
n = int(a)
print('%x'% n)

a=input()

input() 시 사용자의 입력을 받는다.

 

n = int(a)

입력받은 값이 문자열이기 때문에 int() 처리하여 정수형으로 변경 해 준다.

 

print('%x'%n)

16진수 서식(%x)으로 출력한다.

  풀이 - 2

a=input()
a=int(a)
a=hex(a)
print(a[2:].upper())

a=hex(a)

변환된 10진수 값을 다시 16진수로 변경한다.

print(a[2:].upper())

print(a)만 사용하게 되면 16진수를 나타내는 0x192831789와 같이 0x가 앞에 붙게 된다.

이 때 슬라이싱을 이용하여 0x를 제외하고 표출할 수 있도록 한다. [2:]를 붙이면 2번 인덱스 (3번째 문자 또는 숫자)부터 쭉 출력한다는 것이다.

추가로, 대문자 표출을 위해 .upper()함수를 뒤에 달아주면, a 문자열 또는 숫자열이 대문자로 표출된다.

 

 

댓글