아두이노의 상수, 논리 레벨 true , false

아두이노에서 treu(참), false(거짓)에 대해 알아보겠습니다.

c언어에서는 stdbool.h 해더를 include 해야 사용할 수 있지만 아두이노에서는 기본 상수로 지정되어 있습니다.

 

컴퓨터 공학에서 boolean(불리언) 자료형은 논리 자료형이라 하며, 참과 거짓을 나타내는데 쓰입니다. 보통 참은 1 거짓은 0에 해당합니다만 

숫자를 쓰지 않고 영어로 true(1,참), false(0,거짓) 으로 사용됩니다. boolean은 영국의 수학자 george boole의 이름에서 따온 것입니다.

 

아두이노에서의 논리 자료형 Bool

 

위에서 설명과 같이 아두이노에서도 참 거짓을 true, false로 정의합니다. 다른 상수의 경우 대문자로 정의되는 경우가 많으나 논리 자료형의 경우는 소문자로 정의됩니다.

 

false(거짓)

false는 0으로 정의됩니다. 

 

true(참)

true는 앞서 설명한 정의라면 1이여야 합니다. 하지만 부울 정의에서의 true는 0이 아닌 정수입니다. 따라서 1을 포함하여 -1,2,200 등도 true로 정의할 수 있습니다.

 

그럼 예제로 한번 실험해보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void setup() {
  Serial.begin(9600);
  Serial.println("참 거짓 판별");
  bool x = 0;
  if(x == false){
    Serial.print(x);
    Serial.println("는 거짓입니다. ");
    }
  x = 1;
  if(x == true){
    Serial.print(x);
    Serial.println("는 참입니다. ");
    }
  x = 2;
  if(x == true){
    Serial.print(x);
    Serial.println("는 참입니다. ");
    }
  
}
 

  

 

흐름대로라면 앞서 true는 0이아닌 정수라면 모두 true로 정의됩니다. 하지만 true로 정의될뿐 true가 2가 아니기 때문에 출력값은 참값인 1로 출력이 됩니다.

만약 bool x가 아닌 int로 정의 했다면 1이 아닌 값은 참이 아니라고 판단할 것입니다.

 

댓글()