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()함수를 이용해 문자열로 바꿔야 한다.