Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

프로그램 내에서 사용자가 사용할 수 있는 연산자에는 산술, 논리/비교, 기타 연산자로, 총 3 종류가 있습니다.

(1)    산술 연산자

아래 표에서 결과값은 변수 A와 B가 각각 값 3 (0000 0000 0000 0011), 4 (0000 0000 0000 0100)를 저장하고 있는 경우의 연산 결과입니다.

...

연산자

기능

표현예시

설명

~

1의 보수

~A

A가 0000 0000 0000 0011b 이므로, 결과는 1111 1111 1111 1100b 입니다.

+

더하기

A+B

A와 B를 더한 값을 의미합니다. 결과는 7 입니다.

-

빼기

A –B

A에서 B를 뺀 값을 의미합니다. 결과는 -1입니다.

*

곱하기

A*B

A와 B를 곱한 값을 의미합니다. 결과는 12입니다.

/

나누기

A / B

A를 B로 나눈 값을 의미합니다. 결과는 0.75입니다.

%

나머지

A % B

A를 B로 나눈 나머지를 의미합니다. 결과는 3입니다.

&

Bitwise AND

A & B

A와 B를 BIT 단위로 AND 연산을 합니다. 결과는 0입니다.

|

Bitwise OR

A | B

A와 B를 BIT 단위로 OR 연산을 합니다. 결과는 0111b (= 7) 입니다.

^

Bitwise XOR

A ^ B

A와 B를 BIT 단위로 XOR 연산을 합니다 결과는 0111b (= 7) 입니다.

<< 

좌측 Shift

A << B

A의 값(BIT)을 좌측으로 B 만큼 이동한 값을 의미합니다. 우측은 0으로 채워집니다.

결과는 0011 0000b (= 48) 입니다.

>> 

우측 Shift

A >> B

A의 값(BIT)을 좌측으로 B 만큼 이동한 값을 의미합니다. 좌측은 0으로 채워집니다.

결과는 0입니다.

(2)    논리/비교 연산자

다음 표에서 결과값은 각각 1 (True)와 0 (False)의 값을 저장하고 있는 경우의 연산 결과입니다. Xpanel은 논리 연산을 위한 별도의 값을 처리하지 않습니다. 즉, 0이 아닌 값은 모두 정논리 (True)로 처리합니다. 오직 0만 부논리 (False)로 인식합니다.

...

연산자

기능

표현예시

설명

&&

Logical AND

A && B

A와 B가 모두 참인 경우 1, 그밖의 경우에는 0 입니다.

||

Logical OR

A || B

A와 B가 모두 거짓인 경우 0, 그밖의 경우에는 1 입니다.

작다

A < B

A가 B보다 작으면 1, 아니면 0 입니다.

크다

A > B

A가 B보다 크면 1, 아니면 0 입니다.

<= or =<

작거나 같다

A <= B

A가 B보다 작거나 같으면 1, 아니면 0 입니다.

>= or =>

크거나 같다

A >= B

A가 B보다 크거나 같으면 1, 아니면 0 입니다.

==

같다

A == B

A가 B이면 1, 아니면 0 입니다.

!=

같지 않다

A != B

A가 B가 아니면 1, 같으면 0 입니다.

(3)    기타 연산자

연산자

기능

표현예시

설명

=

저장

A = B

B의 값을 A에 저장(기록) 하고 연산의 결과로 처리합니다.

...

이 경우 A와 B의 값은 C의 값으로 기록됩니다. 즉, 연산자 오른쪽에 위치한 수식의 값을 “=” 연산의 결과값으로 처리합니다. 위의 예는 다음과 같은 순서로 프로그램 내부에서 연산됩니다.

B ← C

A ← B

 

(blue star)

“=” 연산자의 특성 때문에 다음 예와 같이 검출되지 않는 프로그램 오류가 빈번하게 발생합니다. 이 경우 A와 B의 값이 같지 않음에도 IF 문의 연산 결과는 True가 될 수 있으며, 원하지 않는 값이 A에 기록될 수도 있습니다.

 

//===================

//검출되지 않는 프로그램 예

//===================

If (A=B) // A와 B의 값이 동일한지의 여부를 검사하는 부분, (A==B)의 오기

{

}