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바이트가 있습니다. 그리고 시스템에 따라 크기를 결정하는 uint와 int 형식이 있어요. uint와 int 형식은 32비트 시스템에서는 4바이트(32비트), 64비트 시스템에서는 8바이트(64비트)입니다.
간단하게 정수 형식의 크기를 코드로 알아보기로 해요.
먼저 LiteIDE를 실행하세요. 그리고 File 메뉴에서 New를 선택한 후에 "New Project or File" 창에서 "Browse..." 버튼을 눌러 새로운 폴더를 하나 생성하세요.
[그림 1] 새로운 프로젝트 생성 및 소스 파일 추가
Go 에서는 변수 크기를 확인하기 위해 "unsafe" 패키기의 Sizeof를 이용합니다.
var i1 int8
fmt.Println(unsafe.Sizeof(i1))
[그림 2] 변수 크기 실행 화면
그리고 프로그래밍할 때 정수를 8진수나 16진수로 표현할 때도 많이 있어요. 메모리의 값은 이진 데이터 형태이므로 2진수로 나타내는데 자리수를 줄이기 위해 8진수나 16진수로 표현하기도 하죠. 특히 1바이트가 8비트여서 16진수 표현은 자주 사용합니다. 16진수 1자리로 4비트의 값을 표현할 수 있어서 16진수 2자리로 1바이트의 값을 표현할 수 있어요.
Go 언어에서 숫자 앞에 0(숫자 영)을 붙이면 8진수 표현이고 0x(숫자 0과 알파벳 x)를 붙이면 16진수 표현이예요.
이번에는 다양한 정수 형식으로 표현할 수 있는 최댓값과 최솟값을 확인하는 코드를 작성해 보아요.
[그림 3] 새로운 프로젝트 생성 및 소스 파일 추가
uint8 형식은 1바이트이므로 0에서 0xFF까지 표현할 수 있어요. uint16은 0에서 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' 카테고리의 다른 글
[구글 Go 하자] 11. 참과 거짓은 bool, 문자열은 string (0) | 2016.05.28 |
---|---|
[구글 Go 하자] 10. math 패키지에서 제한값을 제공해요. (0) | 2016.05.28 |
[구글 Go 하자] 9. Go 언어에서는 복소수를 표현하는 형식을 제공해요. (0) | 2016.05.28 |
[구글 Go 하자] 8. IEEE 754 규약을 따르는 실수, 오차 범위에 주의 (0) | 2016.05.28 |
[구글 Go 하자] 7. byte와 rune 으로 바이너리 데이터 및 코드 표현 (0) | 2016.05.27 |
[구글 Go 하자] 5. 강력한 타입 언어, Go 언어 변수 선언 맛보기 (0) | 2016.05.26 |
[구글 Go 하자] 4. 깃허브 가입하고 LiteIDE 다운로드 및 테스트하기 (0) | 2016.05.25 |
[구글 Go 하자] 3. 윈도우즈에 Go SDK 설치 및 환경 설정하기 (0) | 2016.05.25 |
[구글 Go 하자] 2. Golang 사이트에서 "Hello, World" Try Go하기 (0) | 2016.05.25 |
[구글 Go 하자] 1. 구글 Go 프로그래밍 언어 소개 (0) | 2016.05.25 |