언어 자료구조 알고리즘/구글 Go

[구글 Go 하자] 7. byte와 rune 으로 바이너리 데이터 및 코드 표현

언제나휴일 2016. 5. 27. 18:49
반응형

7. byte와 rune 으로 바이너리 데이터 및 코드 표현



안녕하세요. 언제나 휴일, 언휴예요.


Go 언어에서는 바이너리 데이터를 읽거나 쓸 때 바이트 단위로 처리할 때 byte 형식을 주로 사용해요. 그리고 유니코드(UTF-8)를 표현할 때 rune을 사용합니다.


먼저 byte 표현하는 방법을 새로운 프로젝트를 만들어 확인합시다.

LiteIDE에서 새로운 프로젝트 생성

[그림 1] LiteIDE에서 새로운 프로젝트 생성 및 소스 파일 추가




byte 형식 변수에는 0부터 255까지의 정수 표현을 사용할 수 있어요. 그리고 'a' 처럼 하나의 아스키코드 문자를 표현할 수 있습니다. 다음은 숫자 문자 '1'의 아스키 코드를 네 가지 방법으로 표현한 것입니다.

var b1 byte = 49

var b2 byte = 061

var b3 byte = 0x31

var b4 byte = '1'



byte 형식 변순에 숫자 문자 '1'을 표현한 예제 실행 화면

[그림 2] byte 형식 변수에 숫자 문자 '1'을 표현한 예제 실행 화면


 그런데 아스키코드는 미국 알파벳은 표현할 수 있지만 한글은 표현할 수 없어요. 한글이나 한자 등을 표현할 때는 유니코드를 사용하여 표현할 수 있어요. Go 언어에서는 유니코드를 표현할 때 사용하는 형식 rune을 제공하고 있어요.


 마찬가지로 새로운 프로젝트를 생성하여 직접 표현해 보아요.

LiteIDE에서 새로운 프로젝트 생성 및 소스 파일 추가

[그림 3] LiteIDE에서 새로운 프로젝트 생성 및 소스 파일 추가



 유니코드를 표현할 때는 작은 따옴표 사이에 하나의 문자를 표현하거나 '\u' 혹은 '\U'를 사용하여 유니코드(UTF-8) 문자값을 나타내어 표현합니다.

var r1 rune = ''

var r2 rune = '\ud55c'


rune 형식 변수에 한글 '한'을 표현한 예제 실행 화면

[그림 4] rune 형식 변수에 한글 '한'을 표현한 예제 실행 화면



관련 게시글

[구글 Go 하자] 5. 강력한 타입 언어, Go 언어 변수 선언 맛보기

[구글 Go 하자] 6. 표현 범위에 따라 원하는 정수 형식 사용

[구글 Go 하자] 8. IEEE 754 규약을 따르는 실수, 오차 범위에 주의

[구글 Go 하자] 9. Go 언어에서는 복소수를 표현하는 형식을 제공해요.

[구글 Go 하자] 10. math 패키지에서 제한값을 제공해요.

[구글 Go 하자] 11. 참과 거짓은 bool, 문자열은 string

[구글 Go 하자] 12. const 키워드로 상수 정의

[구글 Go 하자] 13. iota를 사용하여 규칙적인 상수 열거하기

반응형