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