업데이트:

문제 31

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

TIP

8진수는 ‘0o12’처럼 숫자 앞에 ‘0o’를 붙여준다. 이것으로 ‘12’가 8진수의 ‘12’임을 인지한다.

10진수를 8진수로 변환하는 함수는 oct()이며, ‘0o12’와 같이 출력되므로 앞 두자리를 생략하고 출력하면된다. 따라서 ‘0o12’[2:]를 해주면 되는 것.

풀이

# 답
x = int(input())
print(oct(x)[2:])
# 나의 답
x = oct(input())
print(x[2:])

문자열은 oct() 함수로 변환이 불가해 정수형으로 바꿔준 뒤 넣어주어야 한다.
변환 후 문자열(배열)로 반환이 되므로 앞의 문자 두 개를 자르기 위해 배열의 세번째부터 끝까지 출력하겠다는 의미의 [2:]를 추가해주어야 한다.

문제 32

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

TIP

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

10진수를 16진수로 변환하는 함수는 hex()이며, ‘0xa’와 같이 출력되므로 앞 두자리를 생략하고 출력하면된다. 따라서 ‘0xa’[2:]를 해주면 되는 것.

풀이

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

문제 33

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

TIP

소문자를 대문자로 변환하려면 문자열의 메소드(함수)인 upper()를 이용하면 된다.

풀이

# 답
hexadecimal = int(input())
hexConv = hex(hexadecimal)[2:]
print( hexConv.upper())
# 나의 답
x = hex(int(input()))[2:]
print(upper(x))

upper 메소드는 .으로 접근해야 된다는 걸 기억하자.

문제 34

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

TIP

10진수로 변환하고자 할 때는 int()를 이용하면 된다.

첫번째 파라미터로는 변환하고자하는 숫자의 문자열(‘0o12’)을,

두번째 파라미터로는 첫번째 값이 몇 진수인지를 정수로 입력하면 된다.

풀이

# 답
octal = '0o' + input()
print( int(octal, 8) )
# 나의 답
x = int(input())
print(x)

int()에 첫번째 파라미터엔 입력 받은 문자열을 두번째 파라미터엔 몇 진수인지 입력해야된다고 한다

x = int(input(), 8)
print(x)

입력 받은 값에 0o를 안붙여주어도 결과값은 같은데 왜인지 모르겠다.

문제 35

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

TIP

16진수 » 10진수 » 8진수 순서대로 변환

풀이

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

oct()로 변환을 하면 앞의 0o가 붙게되고 이를 잘라내어야 한다는 것을 기억하자.

문제 36

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

TIP

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

풀이

x = ord(input())
print(x)

문제 37

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

풀이

# 답
x = chr(int(input()))
print(x)
# 나의 답
x = str(int(input()))
print(x)

정수를 아스키 문자로 출력할 때는 chr()을 써주도록 하자.
나의 답은 문자열을 정수로 바꾸고 다시 문자열로 변환시키는 바보같은 코드였다..

Notice: 이 게시물은 우리밋_woorimIT님의 유튜브를 참고하였습니다.

댓글남기기