IFP 겨울방학 스터디 | 코드업 기초 100제 (4)

유재우·2022년 1월 19일
0

IFP-겨울방학 스터디

목록 보기
23/38

4. 기초-출력변환


  • 10진수를 입력받아 8진수(octal)로 출력해보자.

내 풀이)

pal = oct(input())
print(pal)    # print(pal[2:])

강의 풀이)

octal = int(input())
print( oct(octal)[2:] )

oct()함수는 앞에 '0o'를 붙여준다. 이것으로 '12'가 8진수의 '12'임을 인지한다.

따라서 앞 두자리를 생략하고 출력하면된다.


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

내 풀이)

hexa = hex(int(input()))
print(hexa[2:])

강의 풀이)

hexadecimal = int(input())
print( hex(hexadecimal)[2:] )

16진수는 '0xa'처럼 숫자 앞에 '0x'를 붙여준다. 이것으로 'a'가 16진수의 'a'임을 인지한다.


  • 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.
    16진수(대문자)로 출력한다.

내 풀이)

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

강의 풀이)

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

함수를 사용할 때 어떻게 사용되는지 정확히 숙지해야겠다.


  • 8진수로 입력된 정수 1개를 10진수로 바꾸어 출력해보자.

내 풀이)

inte = input(oct())
print(int(inte))

강의 풀이)

octal = '0o' + input()
print( int(octal, 8) ) # 오류

8진수로 인식이 되려면 앞에 0o가 입력되어 있으면 8진수로 입력되는 것을 이용해야 하는 사실을 모르고 계속 oct()함수 위치만 바꾸고 있었다.


  • 16진수로 입력된 정수 1개를 8진수로 바꾸어 출력해보자.

내 풀이)

pal = '0x' + input()
print(int(pal, 16))

강의 풀이)

hexadecimal = '0x' + input()
integer = int(hexadecimal, 16)
print( oct(integer)[2:] )

내 풀이는 16진수를 10진수 까지로만 바꿨고 8진수로 바꾸는 과정을 생략을 했다.

16진수 -> 10진수 -> 8진수 순으로 변환해야 한다.


  • 영문자 1개를 입력받아 아스키 코드표의 10진수 값으로 출력해보자.
    아스키 코드란?
    문자를 이진수의 7비트로 표현한 것
    예 ) A => 1100001

문자열에 대응되는 아스키코드를 반환해주는 함수 ord()를 이용하면 된다.

내 풀이)

ascii = ord(input())
print(ascii)

강의 풀이)

askii = ord(input())
print( askii )

  • 10진 정수 1개를 입력받아 아스키 문자로 출력해보자.

내 풀이)

ascii = str(int(input()))
print(ascii)

강의 풀이)

askii = chr(int(input()))
print( askii )

str()이 아닌 chr()함수를 이용해 문자열로 바꿔야 한다.

profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글