프로그래밍 노트

델파이의 연산자 본문

델파이

델파이의 연산자

띠리 2007. 7. 11. 10:34
프로그램 중에 연산자를 사용해서 데이터를 조작할 수 있다.
연산자에는 아래와 같은 연산자들이 있다.

대입 연산자

대입은 = 가 아니라 := 이다.
=앞에 반드시 콜론을 붙인다.
= 는 비교연산자로 쓰인다.

사용예
X := 99;

산술 연산자

산술연산자는 수치 연산을 위한 연산자이다.

기호 의미
+ 더하기 Y := X + 1;
- 빼기 Y := X - 1;
* 곱하기 Y := 3.14 * X;
/ 실수 나누기 Y := X / 3.14;
div 정수 나누기 K := N div 2;
mod 나머지 N := M mod 2;

비트 연산자

비트 연사자는 정수형의 변수의 비트를 조작할 때 사용한다.

기호 의미
or 논리합 M := N or $8000;
and 논리곱 M := N and $FF;
xor 배타적 논리합 M := N xor $FFFF;
shr 오른쪽 쉬프트 M := N shr 1;
shl 왼쪽 쉬프트 M := N shl 1;
not 부정 M := not N;

관계 연산자

관계연산자는 비교를 할때 사용한다.
보통 if문과 함께 사용한다.
C에서는 같은지르 비교할때는 == 을 사용하지만 델파이에서는 = 을 사용한다.

사용예

if nDat > 0 then
begin
  nDat := nDat * 20;
  nRet := funA(nDat);
end;

논리 연산자

논리 연산자는 Boolean형의 변수에 대해 사용한다.

기호 의미
or 논리합 F := F1 or  F2;
and 논리곱 F := F1 and F2;
xor 배타적 논리합 F := F xor True;
not 부정 F := not F1;

어드레스 연산자

어드레스 연산자는 @를 사용하면 변수나 프로시져, 펑션, 메소드의 어드레스를 얻을 수있다.
결국 이런 것들에 @를 붙이면 이것들에 포인터가 된다.

사용예

var
  nDat: Integer;
  pnDat: ^Integer;

begin
...
  pnDat := @nDat;
...
end;

집합 연산자

집합 연산자 in 은 어떤 값이 집합의 멤버인지 아닌지를 판달할 때 사용한다.

사용예

if ItemA in SetA then
begin
   ...
end;

또는 <=, =>, = 는 집합의 비교에 사용한다.
예를 들면 A가 B에 포함되는지 아닌지를 판단할때는 A <= B로 쓴다.


문자열 연산자

문자열을 붙여 쓸때 + 를 사용한다.

사용예

Str := Str1 + ' # ' + Str2;

비교연산자 <, >, <=, =>, =, <> 는 문자 코드 순에 따라서 문자열을 비교한다.
문자열 주작은 이밖에도 많은 문자열 조작 함수를 사용한다.




연산자 우선순위

연산자의 우선순위는 아래와 같다.

연산자 우선순위
@,not,^,- 1(높음)
*,/,div,mod,and,shl,shr 2
+,-,or,xor 3
=,<>,<,>,<=,>=,in 4(낮음)
Comments