아두이노 - 데이터형 Data Type

변수를 선언할 때 알고 있어야 할 데이터형에 대해서 알아보겠습니다.

데이터형

데이터형은 변수를 선언할 때, 변수에 저장될 값의 크기에 따라 선택합니다.
아두이노 코드는 C/C++ 기반이지만, Microcontroller(MCU)의 Bit에 따라 데이터형의 크기가 다릅니다. 코드가 실행되는 시스템에 따라 데이터형이 다릅니다.

아두이노 우노 R3(ATmega328P)와 아두이노 우노 R4(RA4M1)의 데이터형



데이터형 확인 코드

아래 코드는 sizeof 함수를 이용해서 데이터형의 크기를 확인하는 코드입니다.
각 데이터형의 크기를 시리얼로 출력합니다.

// Check data type

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.print("bool    : ");
  Serial.println(sizeof(bool));

  Serial.print("char    : ");
  Serial.println(sizeof(char));

  Serial.print("byte    : ");
  Serial.println(sizeof(byte));

  Serial.print("int     : ");
  Serial.println(sizeof(int));

  Serial.print("word    : ");
  Serial.println(sizeof(word));

  Serial.print("long    : ");
  Serial.println(sizeof(long));

  Serial.print("short   : ");
  Serial.println(sizeof(short));

  Serial.print("float   : ");
  Serial.println(sizeof(float));

  Serial.print("double  : ");
  Serial.println(sizeof(double));

  while(1) {
    ;
  }
}

아두이노 UNO R3



아두이노 UNO R4


bool

부울은 ture(참) 혹은 false(거짓) 두 가지 값 중 하나의 논리값을 저장하는데 사용합니다. 부울 변수는 1바이트의 메모리를 차지합니다.

char

1바이트의 메모리를 필요로 하며 하나의 문자 값을 저장하는데 사용되고, 문자를 변수에 저장할 때는 작은 따옴표를 사용합니다. 문자는 숫자로 저장되며, 문자에 대한 값은 ASCII 코드에서 확인할 수 있습니다.
char형은 부호가 있는 유형으로 -128에서 127까지 저장할 수 있습니다.

unsigned char

부호없는 문자형으로 1바이트의 메모리를 차지합니다. 0에서 255까지 저장할 수 있습니다.

byte

부호없는 1바이트의 숫자 데이터를 저장할 수 있으며, 저장할 수 있는 숫자의 범위는 0에서 255까지 입니다.

int

부호있는 정수형 데이터를 저장하는데 사용합니다. 아두이노 UNO R3에서는 2바이트의 메모리가 필요하며, UNO R4에서는 4바이트의 메모리가 필요합니다. UNO R3에서는 -32,768(-2^15) ~ 32,767(2^15 - 1)까지의 정수형 데이터를 저장할 수 있으며 UNO R4에서는 -2,147,483,648(-2^31) ~ 2,147,483,647(2^31 - 1)까지의 정수형 데이터를 저장할 수 있습니다.

unsigned int

부호없는 정수형을 저장하는데 사용합니다. UNO R3에서는 0 ~ 65,535까지의 부호없는 정수형 데이터를 저장할 수 있습니다. UNO R4에서는 0 ~ 4,294,967,295까지의 부호없는 정수형 데이터를 저장할 수 있습니다.

float

단정도 부동 소수점 실수를 저장하는데 사용합니다. -3.4028235E+38 ~ 3.4028235E+38까지의 부동 소수점 실수 데이터를 저장할 수 있습니다.

double

배정도 부동 소수점 실수를 저장하는데 사용합니다. UNO R3에서는 float과 동일한 -3.4028235E+38 ~ 3.4028235E+38까지의 부동 소수점 실수 데이터를 저장할 수 있습니다. UNO R4에서는 -2.22507385850720138E+308 ~ 1.79769313486231571E+308까지의 부동 소수점 실수 데이터를 저장할 수 있습니다.

이번 글은 아두이노 UNO R3와 R4의 데이터형에 대해 알아봤습니다.