ASP.NET 4.0

[ASP.NET] 연산자

메리 2021. 12. 27. 14:10

데이터의 처리는 연산자에 의한 연산으로 이루어진다. 연산자는 식의 값을 계산하거나 논리적인 구문을 정밀하게 제어하는 역할을 한다.

분류 언어
단항 + -! ~ ++ --
산술 * / % + -
비트 << >> & | ^
관계 < ><= >= is as == !=
논리 & | && || !
대입 = *=/= +=-= <<= >>=&= ^= |=

 

단항 연산자

연산의 대상이 하나인 연산자를 말한다.

부호 연산을 위한 +와 -, 논리형 연산을 표현하는 !, 비트 보수 연산자로 해당 변수 값의 보수를 반환하는 ~ 등이 있다.

// B 부분에 코딩
int myInt = 2;
int result;
result = +myInt; ShowResult(result.ToString());
result = -myInt; ShowResult(result.ToString());
result = ~myInt; ShowResult(result.ToString());

++(증감 연산자), --(감소 연산자)는 전위 또는 후위에 위치시킬 수 있다.

++myInt;
myInt++;

--myInt;
myInt--;

증감 연산과 대입 연산이 함께 있는 식에서 전위 연산자는 증감 연산 후 대입 연산을 한다.

// B 부분에 코딩
// 전위 증감 연산자의 경우 : 증감 연산 후 대입 연산
result = ++myInt;           // ① myInt = myInt + 1; ② result = myInt;
ShowResult(result + " vs " + myInt);    // result는 3이며 myInt는 3이다.

반면, 후위 연산자는 대입 연산 후 증감 연산을 한다.

// B 부분에 코딩
// 후위 증감 연산자의 경우 : 대입 연산 후 증감 연산
result = myInt++;       // ① result = myInt; ② myInt = myInt + 1;
ShowResult(result + " vs " + myInt);    // result는 2이며 myInt는 3이다.

result = myInt--;       // ① result = myInt; ② myInt = myInt - 1;
ShowResult(result + " vs " + myInt);    // result는 3이며 myInt는 2이다.

산술 및 비트 연산자

산술 연산자는 * / % + -가 있다.

// B 부분에 코딩
int myInt = 2;
myInt = myInt << 1;
ShowResult(myInt.ToString());

// 0010 -> 0100
//    2 -> 4

비트 연산자의 & |^는 AND, OR, XOR 연산자이다.

// B 부분에 코딩
int firstOper = 2;
int secondOpr = 3;
int result;

result = firstOper & secondOpr;     ShowResult(result.ToString()); // 0010
result = firstOper | secondOpr;     ShowResult(result.ToString()); // 0011
result = firstOper ^ secondOpr;     ShowResult(result.ToString()); // 0001

관계 및 논리 연산자

관계 연산자와 논리 연산자는 2개의 값을 비교하는 연산자로, 연산 결과를 논리 값(true 또는 false)으로 반환한다.

관계 연산자 의미 논리 연산자 의미
< 보다 작다 & AND
> 보다 크다 | OR
<= 작거나 같다 ^ XOR
>= 크거나 같다 || short-circuit OR
== 같다 && short-circuit AND
!= 다르다 ! NOT
// B 부분에 코딩
int myInt = 1;
int yourInt = 2;

bool isBig = (++myInt > ++yourInt) & (++myInt > ++yourInt); // (2 > 3) & (3 > 4) = False
ShowResult("myInt = " + myInt.ToString());
ShowResult("isBig = " + isBig.ToString());

// B 부분에 코딩
int myInt = 1;
int yourInt = 2;

bool isBig = (++myInt > ++yourInt) && (++myInt > ++yourInt); // (2 > 3)False
ShowResult("myInt = " + myInt.ToString());
ShowResult("isBig = " + isBig.ToString());

&연산자는 모든 경우를 확인한 후 결과를 반환하기 때문에 좌항과 우항에서 모두 myInt의 증가 연산이 이루어진다. 따라서 출력 결과는 3이 된다.

반면 && 연산자의 경우 좌항이 거짓이므로, 우항은 연산하지 않기 때문에 출력 결과는 2가 된다.

 

대입 연산자

기본 대입 연산자는 =이다. C#에서는 산술 연산자나 비교 안산자와 결합된 다양한 대입 연산자를 활용할 수 있다. 이러한 연산자는 편리성은 있지만 가독성은 떨어진다.

대입 연산자 의미 대입 연산자 의미
myInt = 2 대입 myInt <<= 2 myInt = myInt << 2
myInt *= 2 myInt = myInt * 2 myInt >>= 2 myInt = myInt >> 2
myInt /= 2 myInt = myInt / 2 myInt &= 2 myInt = myInt & 2
myInt += 2 myInt = myInt + 2 myInt ^= 2 myInt = myInt ^ 2
myInt -= 2 myInt = myInt - 2 myInt |= 2 myInt = myInt | 2