17.4 연산자
연산자는 함수를 구성하는 주요 요소입니다. 우선 순위가 높은 연산자부터 계산하며, 우선 순위가 같은 경우에는 좌에서 우로 계산합니다. 단, 대입연산자 = 는 우에서 좌로 계산됩니다. (연산자항의 () 안의 숫자는 연산자의 우선순위를 나타내며, 우선 순위 숫자가 작을수록 우선 순위가 높습니다.)
문자열을 연산하는 경우에는 양쪽 모두 문자열로 구성되어야 하며, 문자열을 사용할 수 있는 연산자는 =, +, <, >, ,+, >=, ==, != 입니다.
내부연산의 처리 결과에 있어서 문자열을 제외한 나머지 연산은 내부적으로 8BYTE Double 로 처리됩니다.
연산자 | 기능 | 표현예시 | 설명 |
= | 대입연산자 | TAG_A = 3 + 4 | 3+4한 결과(7)를 TAG_A에 대입합니다. |
~ | 1의 보수 | ~TAG_A | TAG_A가 00110101b인 경우, 결과는 11001010b 입니다. |
! | 논리 NOT | !TAG_A | TAG_A가 0이면 1, 0이 아니면 0 입니다. |
+ | 더하기 | TAG_A+4 "ABC" + "123" | TAG_A와 4를 더한 값을 의미합니다. 두 문자열일 경우 각 문자열을 연결한 값 "ABC123"을 의미합니다. |
- | 빼기 | TAG_A – 4 | TAG_A에서 4를 뺀 값을 의미합니다. |
* | 곱하기 | TAG_A * 7 | TAG_A와 7을 곱한 값을 의미합니다. |
/ | 나누기 | TAG_A / 7 | TAG_A를 7로 나눈 값을 의미합니다. |
% | 나머지 | TAG_A % 7 | TAG_A를 7로 나눈 나머지 값을 의미합니다. |
& | Bitwise AND | TAG_A & 0101b | TAG_A가 0011b인 경우, 결과는 0001b 입니다. |
| | Bitwise OR | TAG_A | 0101b | TAG_A가 0011b인 경우, 결과는 0111b 입니다. |
^ | Bitwise XOR | TAG_A ^ 0101b | TAG_A가 0011b인 경우, 결과는 0110b 입니다. |
&& | Logical AND | 수식1 && 수식2 | 수식1과 수식2가 모두 참인 경우 1, 그밖의 경우에는 0 입니다. |
|| | Logical OR | 수식1 || 수식2 | 수식1과 수식2가 모두 거짓인 경우 0, 그밖의 경우에는 1 입니다. |
<< | 좌측 Shift | TAG_A << 3 | TAG_A의 값(BIT)이 좌측으로 3Bit이동한 값을 의미합니다. 우측은 0으로 채워집니다. TAG_A가 00110101b인 경우 결과는 10101000b 입니다. |
>> | 우측 Shift | TAG_A >> 3 | TAG_A의 값(BIT)이 우측으로 3Bit이동한 값을 의미합니다. 좌측은 0으로 채워집니다. TAG_A가 00110101b인 경우 결과는 0000110b 입니다. |
< | 작다 | TAG_A < 7 | TAG_A가 7보다 작으면 1, 아니면 0 입니다. |
> | 크다 | TAG_A > 7 | TAG_A가 7보다 크면 1, 아니면 0 입니다. |
<= | 작거나 같다 | TAG_A <= 7 | TAG_A가 7보다 작거나 같으면 1, 아니면 0 입니다. |
>= | 크거나 같다 | TAG_A >= 7 | TAG_A가 7보다 크거나 같으면 1, 아니면 0 입니다. |
== | 같다 | TAG_A == 7 | TAG_A가 7이면 1, 아니면 0 입니다. |
!= | 같지 않다 | TAG_A != 7 | TAG_A가 7이 아니면 1, 같으면 0 입니다. |