[씨샵동영상]1.4 C#, 연산자 PART02

오라클왕 0 167 04.27 10:25

 

Shift 연산자

 

l  비트별 연산이 필요한 경우, 그리고 2n제곱배 곱셈이 필요한 경우 사용되는 연산자이다.

l  ) x MBbit로 나타내고자 할 때, x*1024*1024*8 을 구하는 것은 복잡하다. 그리고 가독성도 떨어진다.

 

논리연산자와 비트연산자

 

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

l  int형은 bit 연산자만을 사용할 수 있는데 bit연산이란 정수를 2진수로 나타낸 후 각 자리의 bit들을 각각 연산하는 것이다.

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

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

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

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

 

 

조건 연산자

 

l  간단한 if-then-else의 경우에 조건 연산자를 사용한다.

l  조건의 참, 거짓에 따라 다른 값을 가진다.

 

 

NULL 결합연산자

 

아래 ??(Null-Coalesce Operator) 연산자는 널을 체크하여 널이 아닌 것을 돌려주는데,

예제로 확인하자.

 

using System;

namespace ConsoleApplication10

{

    class Program

    {

        static void Main(string[] args)

        {

            object a = null;

            object b = "abc";

 

            //Null-Coalesce Operator, a,b null이 아닌것을 c에 대입

            object c = a ?? b;

            Console.WriteLine(c);

 

            //----------------------

            object d;

 

            if (a != null)

            {

                d = a;

            }

            else

            {

                d = b;

            }

            Console.WriteLine(d);

 

            //-----------------------

 

            object e;

            e = (a != null) ? a : d;  //3항연산자,ternary operator

            Console.WriteLine(e);

        }

    }

}

 

[결과]

abc

abc

abc

 


 

Comments