참고자료

아두이노, 오렌지보드 등의 오픈소스하드웨어를 사용하는데 필요한 것들을 알아봅니다.

자료형

2014-08-07 14:54:05

자료형 (데이터 타입)의 종류

우리는 실생활에서 언어를 사용할때 한글 하나만 사용하지 않는다. 숫자도 사용할때도 있고 영어 알파벳을 사용할때도 있고, 혹은 한자나 일본어, 러시아어 아랍어등 세계곳곳의 언어를 보고 사용한다.
우리는 이 많은 언어들을 보고 직관적으로 '이건 어느나라 말이구나', '이건 숫자구나' 생각하고 느낄 수 있지만 컴퓨터는 뇌가없고 오로지 0과 1을 가지고 계산만을 하기 때문에 우리가 숫자를 입력하거나 알파벳을 입력할때 이것이 알파벳인지 숫자인지 한글인지 직관적으로 구별을 하지 못한다.
따라서 우리가 입력한 문자가 숫자인지, 알파벳인지 구분하기 위해서는 데이터형이라는 것을 만들고 선언해 주어야 한다.

이렇게 데이터가 어떤 타입인지 선언하는것 이외에도 불필요한 메모리낭비를 막기위해, 문자의 갯수에 따라 다 표현하기 위해 데이터형마다 할당되는 메모리가 다르다.
예를들면 int형은 정수타입을 나타내는 데이터타입으로 입력한 숫자를 정수로 받아들인다. int형은 일반적인 컴퓨터에서는 4바이트(2의 32승)메모리를 할당받아 숫자를 표현한다.

아두이노는 C언어에 기반하여 만들어졌기때문에 C언어의 데이터타입과 거의 유사한 형태를 띄고 있다.
다만 조금씩 데이터타입마다 메모리의 크기가 다른경우가 있다.

int

정수형 데이터를 저장하기 위한 데이터타입으로. ATmega기반의 보드에서는 2바이트(2의 16승) 메모리를 할당받는다. ARM프로세서를 사용한 보드에는 4바이트(2의 32승)의 메모리를 할당받기때문에 이점에 유의하여야 한다. 

unsigned int

역시 정수형 데이터를 저장하기 위한 데이터타입이다. 그냥 int와 다른점은 int는 +와 -둘다 표현이 가능했다면 unsigned int는 오로지 양수만 표현한다. int형이 -2^15~2^15-1까지의 숫자를 표현한다면 unsigned int는 0~2^16-1까지의 숫자를 표현한다. 말그대로 부호없은 정수형을 표현하는 데이터 타입이다. int와 마찬가지로 ATmega보드에서는 2바이트를 할당받는다. int형은 MSB(Most Significant Bit)가 부호를 나타내는 비트였다면 unsigned int는 그냥 데이터의 크기를 나타내는 비트로 쓰인다.

byte

타입명 그대로 1바이트를 할당받아 부호없는 숫자를 표현한다. 0~255까지 256가지의 숫자를 표현할 수 있다.

char

하나의 문자를 저장하기 위한 데이터 타입으로 1바이트의 메모리가 할당된다. char형은 문자가 저장되지만 실질적으로 내부에는 아스키코드값이 입력되므로 덧셈과 뺄셈과 같은 연산이 가능하다. 부호가 존재하기 때문에 -128~127까지의 숫자가 저장된다.

unsigned char

하나의 문자를 저장하기 위한 데이터타입이지만 char형 또한 저장되는 값은 숫자이기때문에 부호가 없는 unsigned char형이 필요하다. 0~255까지의 숫자를 저장하며 확장아스키코드(128~255까지의 범위를 가지는 코드)의 사용이 가능해진다.

boolean

참, 거짓을 의미하는 논리값을 저장하는 데이터타입으로 true(1)나  false(0)의 값이 들어가게 된다. 메모리 최소단위인 1바이트를 사용한다.

float

실수형의 데이터(소수점을 사용하는 숫자)를 저장하기 위한 데이터 타입이다. 4바이트의 메모리를 할당받으며 부호비트 1비트,  지수부 8비트, 나머지 23비트는 가수부이다. -3.4*10^38 ~ 3.4*10^38사이의 숫자를 표현 가능하며 정밀도 면에서 double에 비해 떨어지고 연산속도 또한 느리기 때문에 정밀한 연산결과를 위해서는 float보다 double을 사용하는것이 좋고, 큰 연산이 필요할 때는 되도록이면 사용하지 않는다.

double

float과 마찬가지로 실수형의 데이터를 저장하기 위해 쓰는 데이터 타입으로 ATmega타입의 보드에서는 4바이트의 메모리를 할당받고 그밖의 보드에서는 8바이트의 메모리를 할당 받는다. 
-1.79*10^308~1.79*10^308사이의 값이 표현 가능하다.

String

문자를 사용하기 위해 사용하는 전용클래스로 다양한 멤버함수와 연산자 사용으로 char형보다 다양하게 문자를 사용이 가능하다. 

const

상수를 선언하기 위한 것으로 상수로 선언된 값은 소스내에서 값을 바꿀 수가 없다. 일반변수에 하나의 값만 넣어서 변함없이 사용하고 싶다면 데이터타입 앞에 선언하면 된다. 코드작성의 편의를 위해서 사용된다.

static

일반변수는 선언한 지역내에서 블록을 벗어나는 경우 소멸되지만 static을 선언해줄경우 그 범위를 벗어나도 소멸되지 않고 값을 유지한다. 정적변수라고 불러 사용한다.

그 밖에 사용되는 데이터형

u가 붙어있는 것은 Unsigned를 나타내고 숫자는 바이트를 나타낸다.
아래 데이터형은 사용될 일은 많지 않겠지만 한번이라도 봐두면 나중에 사용할 일이 생길 때 알아볼 수 있을 것이다.

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

자료형, 기타

장성준 2015-10-07 19:11:37

음... 잘 알겠네요.