Go lang 에서 hex 스트링 변환 방법

golang을 이용하여, 시리얼 통신을 하고 있습니다. 해당 장비에서 hexa값으로 프로토콜을 받고 있습니다.

입력과 결과 파일을 사람의 눈으로 인지하기 쉽도록 16진수 스트링으로 보여주면 좋습니다. hexa 값을 터미널에 그대로 보여주면 사람의 눈으로는 어떤 값인지 알 수가 없습니다.

이때 사용하는 패키지가 encoding/hex 입니다.

hex 패키지에는 hexa값을 문자열로 변경하는 함수와, 문자열을 hexa 값으로 변환하는 함수가 들어 있습니다.

Byte 를 hex string으로 바꾸는 법

func EncodeToString(src []byte) string

기기에서 시리얼 통신을 통해 넘어온 hex값을 사람이 인지할 수 있는 string으로 변경할 때 사용합니다.

import "encoding/hex"
//
n, err := port.Read(buff)
//
//
encodedStr := hex.EncodeToString((buff[:n]))
fmt.Printf("%s\n", encodedStr)

hex string을 byte로 바꾸는 법

func DecodeString(str string) ([]byte, error)

기기에게 hex 값을 전달할때 사용하면 편리합니다.

import "encoding/hex"
//
byteArray, _ := hex.DecodeString("C100D3007608")

n, err := port.Write([]byte(byteArray))
//
//

상기와 같이, hex.EncodeToString, hex.DecodeString 을 사용하면 인지가 가능한 형태로 프로그램을 작성할 수 있습니다.

Leave a Comment