본문 바로가기
프로그래밍 관련/파이썬

파이썬. 숫자를 문자로. 문자를 숫자로. 자리수도 맞춰서. 16진수 변환 등등

by 존버매니아.임베디드 개발자 2021. 10. 22.
반응형

핵심 키워드

hex 함수 , oct 함수 , bin 함수

format 함수,

int 함수 , float 함수


정수를 16진수.8진수.2진수 형태의 문자열로 바꾸기

data = 255
hex(data)

print(hex(data))

>>>0xff

참고로 hex함수가 리턴해주는 값은 "str 타입의 문자열"이다.

이 문자열은 앞에 "0x" 기호도 자동으로 같이 붙여준다.


2진수로 바꾸기

8진수도 바꾸기

data = 255
hex(data)

print(oct(data))

print(bin(data))

>>>0o377
>>>0b11111111

2진수는 앞에 0b

8진수는 앞에 0o 

가 붙는 모습을 볼 수 있다.


정수를 16진수 형태로 "자리수" 맞춰서 만들기
한편 format 함수를 이용하는 방법도 있다.
이것을 이용하면 앞에 0을 채워서 자리수를 맞출 수 있다.

#02x ,02X // x가 대문자면 출력 문자가 대문자, 소문자면 소문자
print(format(255, '02x'))
print(format(255, '02X'))

>>>ff
>>>FF

#앞에 # 을 붙이면 0x 까지 같이 붙여준다. (앞의 예시에서 # 안붙이면 0x없이 ff만 나옴)
#02에서 04가 된 이유는 앞에 0x가 붙어서 0xff 가 되려면 최소 4자리 필요하기 때문
print(format(255,"#04x"))
print(format(255,"#04X"))

>>>0xff
>>>0XFF


## 02x는 앞에 0을 채워서 출력자리를 2자리로 만든다는 것
## 03x는 앞에 0을 채워서 출력자리를 3자리로 만든다는 것
# 출력결과를 보면 hex만 하면 0xf 인데
각각 0f, 00f 로 2자리, 3자리 맞춰서 바꾸는걸 알 수 있다.

print( hex(15) )
print(format(15 , "02x"))
print(format(15, "03x"))

>>>0xf
>>>0f
>>>00f

문자열을 숫자로 바꾸기
문자열을 실수로 바꾸기

 

int 함수, float 함수를 사용하면 된다.

아래 예시는 '12' 라는 문자열 타입의 정수를 갖고 있는 data 변수를 int형 또는 float으로 바꾸는 예제

data = '12'

print(int(data))
print(float(data))

print(type(int(data)))
print(type(float(data)))  # 정수도 float으로 변환가능

>>> <class 'int'>
>>> <class 'float'>
>>> 12
>>> 12.0

 

아래 예시를 보면 13.4라는 문자열이 float 타입으로 전환됨

참고로 13.4를 int 함수로 전환은 못함

data2 = "13.4"
print(type(data2))
print(type(float(data2)))
print(float(data2))

#int(data2)는 에러

>>> <class 'str'>
>>> <class 'float'>
>>> 13.4


문자열을 10진수 숫자로 바꾸기

data = '0xff'
print(int(data , 16))

data = '0b11111111'
print(int(data,2))

>>> 255
>>> 255

16진수 문자열을 10진수 숫자로

test_str1 ='ff'
test_str2 = '0xff'
var1 = int(test_str1,16)
var2 = int(test_str2,16)

print(var1)
print(var2)

 

반응형