컴퓨터 프로그래밍을 하다보면 Hexadecimal type의 데이터를 문자열로 바꾸어서 출력하거나, hexadecimal 값을 1씩 증가시키는 등 데이터를 가공해야하는 경우가 생긴다.

이번 포스트에서는 Python 2 와 Python 3에서 hexadecimal data를 다루는 데 유용한 함수들 및 활용예를 정리하고자 한다.

문자열로 표현된 Hexadecimal 값을 Hexadecimal의 bytes 형으로  변환하기

Hex 값으로 표현되는 대표적인 데이터가 MAC address이다.

MAC address는 6 bytes의 문자와 ‘:’ 또는 ‘-‘의 구분자를 혼용해서 표현된다.

예: 00:08:DC:11:22:33

문자열로 된 Hexa 값에서 구분자를 제거하고 Hex 값만 남도록 한다.

Python 2

string의 하위 함수인 replace()를 사용한다.

Screenshot from 2018-01-05 17-02-27

Hex 문자열을 정수형으로 변경한다.

Python 2

int() 함수를 사용한다. 인자가 16진수 타입이라는 것을 지정해 주어야 한다.

Screenshot from 2018-01-05 17-06-12

정수형 데이터를 Hex 타입의 bytearray로 변환하기 위해서 다음과 같은 함수를 사용한다.

Python 2

bytearray.fromhex(‘<disp type>‘.format(variable))

Screenshot from 2018-01-05 17-34-41

Hex 값에 특정한 숫자를 더하거나 빼기위해서는 정수로 전환한 상태에서 연산을 한 다음에 bytearray로 변환하면 된다.

Hexadecimal bytes 형을 문자열의 Hexadecimal로 변환하기

Hex 값의 bytearray로 된 데이터를 Hexadecimal 문자열로 변환하는 함수는 다음과 같다.

Python 2

Python 2에서는 join함수를 사용한다.

Screenshot from 2018-01-05 17-33-55.png

 

여기에 설명된 함수들을 이용해서 Hex 값의 bytes와 Hexadecimal 문자열간의 전환 및 문자열로된 Hexadecimal 데이터의 사칙연산 등 가공을 손쉽게 할 수 있다.

 

Advertisements