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

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

언제나휴일 2016. 5. 26. 09:15
반응형

6. 표현 범위에 따라 원하는 정수 형식 사용


 

 안녕하세요. 언제나 휴일입니다. 이전 게시글에게 변수 선언하는 방법을 간단히 알아보았죠

 

 이번 게시글에서는 정수 형식에 관해 다룰 거예요.


 Go 언어는 표현 범위에 따라 1바이트에서 8바이트까지의 정수 형식을 사용할 수 있어요.

 

자료형

바이트

자료형

바이트

uint8

1바이트

int8

1바이트

uint16

2바이트

int16

2바이트

uint32

4바이트

int32

4바이트

uint64

8바이트

int64

8바이트

uint

n비트 시스템에서 n비트

int

n비트 시스템에서 n비트

 

 정수 형식은 음의 정수를 표현하지 않는 uint 계열과 음의 정수도 표현하는 int 계열이 있어요. 정수 형식은 1바이트, 2바이트, 4바이트, 8바이트가 있습니다. 그리고 시스템에 따라 크기를 결정하는 uintint 형식이 있어요. uintint 형식은 32비트 시스템에서는 4바이트(32비트), 64비트 시스템에서는 8바이트(64비트)입니다.

 

 간단하게 정수 형식의 크기를 코드로 알아보기로 해요.

 

 먼저 LiteIDE를 실행하세요. 그리고 File 메뉴에서 New를 선택한 후에 "New Project or File" 창에서 "Browse..." 버튼을 눌러 새로운 폴더를 하나 생성하세요. 

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

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

 

 

Go 에서는 변수 크기를 확인하기 위해 "unsafe" 패키기의 Sizeof를 이용합니다.

var i1 int8

fmt.Println(unsafe.Sizeof(i1))


Go 언어 변수 크기 실행 화면

[그림 2] 변수 크기 실행 화면

 

 그리고 프로그래밍할 때 정수를 8진수나 16진수로 표현할 때도 많이 있어요. 메모리의 값은 이진 데이터 형태이므로 2진수로 나타내는데 자리수를 줄이기 위해 8진수나 16진수로 표현하기도 하죠. 특히 1바이트가 8비트여서 16진수 표현은 자주 사용합니다. 16진수 1자리로 4비트의 값을 표현할 수 있어서 16진수 2자리로 1바이트의 값을 표현할 수 있어요.

 

 Go 언어에서 숫자 앞에 0(숫자 영)을 붙이면 8진수 표현이고 0x(숫자 0과 알파벳 x)를 붙이면 16진수 표현이예요.

 

 이번에는 다양한 정수 형식으로 표현할 수 있는 최댓값과 최솟값을 확인하는 코드를 작성해 보아요.

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

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

 

 uint8 형식은 1바이트이므로 0에서 0xFF까지 표현할 수 있어요. uint160에서 0xFFFF까지 표현할 수 있어요. 그리고 int8-80에서 0x7까지 표현할 수 있어요. 이를 이용하여 다음처럼 코드를 작성하면 정수 형식의 표현 범위의 최솟값과 최댓값을 확인할 수 있어요.

 


정수 형식의 표현 범위의 최솟값과 최댓값 확인

[그림 4] 정수 형식의 표현 범위의 최솟값과 최댓값 확인


관련 게시글

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

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

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

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

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

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

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

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

반응형