조건 연산자

 

 

 

 

 

Ø간단한 if-then-else의 경우에 조건 연산자를 사용한다.
Ø조건의 참, 거짓에 따라 다른 값을 가진다.

 

 

 

 

연산자 

사용 예 

의미 

?1:2 

a=x>20?30:5 

(x>20)인 조건이 참이면 30을 거짓이면 5a에 할당한다. 

 

 

 

 

 

예제) 비트 연산자 사용

 

 

 

 

using System;

public class Bitoper

{

  public static void Main(string[] args)

  {

      int i = 10;

     int j = 20;

  int a;

 

  a = i & j; i = i >>3; j = i<<3;

  Console.WriteLine("a={0}, i={1}, j={2}", a,i,j);

  Console.ReadLine();

  }

}  // 실행 결과는?

 

 

 

 

논리 연산자와 비트 연산자(2)

 

 

 

 

 

Ø A&&B의 경우, 만약 Afalse이면 더 이상 B를 계산하지 않고 계산 결과값이 false로 결정된다. Atrue일때만 B를 계산한다.

 

Ø A||B의 경우, 만약 Atrue이면 더 이상 B를 계산하지 않고 계산 결과값을 true로 결정한다. Afalse인 경우에만 B를 계산한다.

 

Ø A|BA&B의 경우, A가 값에 관계없이 계속해서 B를 계산해서 AB로 연산을 수행한 후에 계산 결과값 true를 결정한다.

 

 

 

 

논리 연산자와 비트 연산자(1)

 

 

 

 

Ø C#에서는 bool 타입만이 논리연산자를 사용할 수가 있다. C에서는 0이나 -1false라고 묵시적으로 생각하였으나, C#에서는 반드시 true, false로 명시하고 있다.

 

Ø int형은 bit 연산자만을 사용할 수 있다.

 

Ø bit연산이란 정수를 2진수로 나타낸 후 각 자리의 bit들을 각각 연산하는 것이다.

 

Ø bool 타입은 논리 연산 대신 &, | 등을 사용할 수도 있다.

 

 

 

 

 

쉬프트 연산자

 

 

 

 

 

Ø비트별 연산이 필요한 경우, 그리고 2n제곱배 곱셈이 필요한 경우 사용되는 연산자이다.
Ø) x MBbit로 나타내고자 할 때, x*1024*1024*8 을 구하는 것은 복잡하다. 그리고 가독성도 떨어진다. 이럴때,  x<<23 또는 x<<20<<3 으로 표현한다.

 

 

 

 

 

연산자 

 

예의 효과 

<< 

x<<8 

왼쪽으로 8 bit shift

1bit shift 마다 값이 2배씩 증가 

>> 

x>>8 

오른쪽으로 8 bit shift

1bit shift 마다 값이 1/2배씩 감소 

 

 

 

 

 

 

비트 연산자

 

 

 

 

Ø비트 연산자
l &AND, |OR
l ^XOR, ~NOT의 의미

 

 

 

 

A 

B 

A&B 

A|B 

A^B 

~A 

0 

0 

0 

0 

0 

1 

0 

1 

0 

1 

1 

1 

1 

0

0

1

1

0

1

1

1

1

0

0

 

 

 

 

 

논리 연산자

 

 

 

 

Ø논리 연산자
l &&AND, ||OR
l ^XOR, !NOT의 의미

 

A 

B 

A&&B 

A||B 

A^B 

!A 

F 

F 

F 

F 

F 

T 

F 

T 

F 

T 

T 

T 

T 

F 

F 

T 

T 

F 

T 

T 

T 

T 

F 

F 

 

 

 

 

 

 

 

비교 연산자

 

 

 

 

 

연산자 

기능 

x=10일 경우 

== 

값이 같은가 비교 

x == 3(거짓) 

!= 

값이 다른가 비교 

x != 3() 

>, >=,

<, <= 

대소 관계를 비교 

x>11(거짓) x>=9() 

is 

객체 타입비교 연산자 

x is int () 

 

 

 

 

 

+ Recent posts