달나라 노트

Python int : 숫자 형태로 만들기, 16진수를 10진수로 변환, 8진수를 10진수로 변환, 2진수를 10진수로 변환 (10진수로 변환하기) 본문

Python/Python Basic

Python int : 숫자 형태로 만들기, 16진수를 10진수로 변환, 8진수를 10진수로 변환, 2진수를 10진수로 변환 (10진수로 변환하기)

CosmosProject 2024. 3. 29. 19:11
728x90
반응형

 

 

 

Python 내장 함수인 int() method는 어떠한 값을 정수로 변환해주는 역할을 합니다.

 

val_result = '12345'
val_result_int = int(val_result)
print(val_result_int)
print(type(val_result_int))



-- Result
12345
<class 'int'>

 

사용법은 위와 같습니다.

그냥 어떤 값을 int() method에 전달하면 됩니다.

그러면 그 값을 정수로 바꿔줍니다.

 

근데 좀 더 정확하게 말하면 여기에는 숨겨진 내용이 왔습니다.

 

 

 

val_result = '12345'
val_result_int = int(val_result, base=10)
print(val_result_int)
print(type(val_result_int))



-- Result
12345
<class 'int'>

 

위 코드를 보면 int() method에 base라는 parameter가 있습니다.

 

base는 input받은 값이 몇진수인지를 나타냅니다.

기본값은 10진수이며 그래서 base=10이라고 적은 것입니다.

 

int(val_result, base=10)

즉, 위 코드를 해석해 보면 "10진수의 형태인 val_result를 정수로 바꿔라."라는 의미입니다.

 

 

 

 

 

 

val_bin = bin(5)
print(val_bin)

val_dec = int(val_bin, base=2)
print(val_dec)

val_dec = int(val_bin.replace('0b', ''), base=2)
print(val_dec)



-- Result
0b101
5
5

 

위 예시는 5라는 10진수 숫자를 bin() method를 이용하여 2진수로 바꾸고,

이 2진수를 int() method를 이용하여 다시 10진수로 바꾸는 것입니다.

 

5를 2진수로 바꾸면 0b101이라는 값이 출력되는 것을 볼 수 있습니다.

0b라는 문자는 2진수(binary)라는 의미이고 결국 101이 5를 2진수로 바꾼 것이죠.

 

 

그리고 이 101이라는 2진수를 int() method를 이용해 다시 10진수로 바꾸는 코드입니다.

 

val_dec = int(val_bin, base=2)
print(val_dec)

val_dec = int(val_bin.replace('0b', ''), base=2)
print(val_dec)

 

2진수를 10진수로 바꿀 때에는 base=2라는 parameter를 설정해야 합니다.

왜냐면 전달된 val_bin이라는 숫자가 2진수이기 때문이죠.

 

그리고 2진수를 전달할 때에는

0b101이라는 binary flag가 붙어있는 값을 전달해도 되고

0b를 제거하고 101이라는 2진수 그 자체의 값만을 전달해도 됩니다.

 

 

 

 

 

 

val_oct = oct(17)
print(val_oct)

val_dec = int(val_oct, base=8)
print(val_dec)

val_dec = int(val_oct.replace('0o', ''), base=8)
print(val_dec)



-- Result
0o21
17
17

 

비슷한 방법으로 8진수 -> 10진수 변환도 가능합니다.

 

 

 

val_hex = hex(17)
print(val_hex)

val_dec = int(val_hex, base=16)
print(val_dec)

val_dec = int(val_hex.replace('0x', ''), base=16)
print(val_dec)



-- Result
0x11
17
17

 

비슷한 방법으로 16진수 -> 10진수 변환도 가능합니다.

 

 

 

 

 

728x90
반응형
Comments