[닷넷강의]1.4 C#, 연산자 PART01

 

1-4. C#, 연산자

 

구분

연산자

기본 연산자

x(), x.y, f(x), a[x], x++, x--,

new, typeof, sizeof, default<T>, checked, unchecked, ->

단항 연산자

+, -, !, ~, ++x, --x, (T)x,

산술 연산자

+, -, *, /, %

쉬프트 연산자

<<, >>

관계/형식테스트 연산자

<, >, <=, >=, is, as

비트 연산자

&, ^, |

논리 연산자

&&, ||

Null 결합 연산자

??

조건 연산자

?

같음

==, !=

할당 연산자

=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |=

 

 

기본연산자

 

연산자

이름

의미

(x)

괄호

연산자 우선순위를 지정하기 위한 것

x.y

(.dot)

클래스의 메소드나 속성을 접근하기 위한 것

f(x)

메소드괄호

메소드의 인자를 넣을 괄호

a[x]

대괄호

배열이나 인덱서의 인덱스

default<T>

 

참조 형식에 대해서는 null을 반환하고 숫자 값 형식에는 0을 반환

checked

 

형변환시 오버플로우를 체크

unchecked

 

형변환시 오버플로우 체크 않음

typeof()

 

객체에 대한 타입정보(System.Type)을 리턴

sizeof()

 

객체의 크기를 얻음.

주어진 데이터형식의 크기를 byte 단위로 리턴, 가능한 형식은 Value Type이며 int, float, enum, struct 등이다.

 

 

using System;

 

class TypeCastExample1

{

    public static void Main()

    {

        int iSize = sizeof(int);

        Console.WriteLine("int 바이트길이 : {0}", iSize);

 

        Type myType1 = typeof(int);

        Console.WriteLine("typeof(int) : {0}", myType1);

 

        int i = 10;

        Type myType2 = i.GetType();

        Console.WriteLine("i.GetType() : {0}", myType2);

    }

}

[결과]

int 바이트길이: 4

typeof(int) : System.Int32

i.GetType() : System.Int32 

 

 

산술 연산자

 

구분

연산자

예 설명

단항

+x, -x, !x,

!true

True의 부정인 false

 

~x

byte x=10; ~x

비트 보수 연산을 수행, 각 비트를 반전(-11이 됨)

 

(T)x

int x=50000;

int y=(short)x;

캐스팅 연산

이항

+, -, *, /, %

a=b % 2;

2로 나눈 나머지

증감

++

j++;

1증가

--

j--;

1감소

할당연산자

+=, -=, *=, /=, %=

j+=3;

j=j+3과 동일

j%=3;

j=j%3과 동일

 

using System;

class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine(+3);        // unary plus, 3

            Console.WriteLine(3 + 3);     // addition, 6

            Console.WriteLine(3 + .3);    // addition, 3.3

            Console.WriteLine("3" + "3"); // string concatenation, 33

            Console.WriteLine(3.0 + "3"); // 3.0 문자열로 변환,string concatenation, 33

 

            //! 피연산자를 부정하는 연산자.

            Console.WriteLine(!true);     //false

 

            //~ : 비트 보수 연산을 수행, 비트를 반전

            byte x = 10;

            Console.WriteLine(~x);        //-11

 

            Console.WriteLine(unchecked((short)50000));  //overflow, -15536

        }

    }

 

비교연산자

 

연산자

기능

x=10일 경우

==

값이 같은가 비교

x == 3(거짓)

!=

값이 다른가 비교

x != 3()

>, >=,

대소 관계를 비교

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

<, <=

is

객체 타입비교 연산자

x is int ()

 

l  xint 타입인 경우 x is int를 테스트 하면 true가 된다. 기본 타입 뿐만 아니라 사용자에 의해 정의된 클래스도 테스트 된다.

 

논리연산자

 

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

 

비트연산자

 

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

 

Comments