왜.... 오셨나요?

부끄러워요

개발관련공부자료

연산자

와피했는데 2023. 9. 22. 17:03

/****************************************************************
 * 논리 연산자
 ****************************************************************/

// <논리 연산자>
bValue = !false;        // !(Not) : 피연산자의 논리 부정을 반환
bValue = true && false; // &&(And) : 두 피연산자가 모두 true 일 경우 true
bValue = true || false; // ||(Or) : 두 피연산자가 모두 false 일 경우 false
bValue = true ^ false;  // ^(Xor) : 두 피연산자가 다를 경우 true

// <조건부 논리 연산자>
// 조건부 논리 And 연산자 &&
// 빠른 계산을 위해 false && x(논리자료형) 의 경우 어떠한 논리자료형이 있어도
// 결과는 항상 false이기 때문에 false && x 에서 x는 무시하게 됨
iValue = 10;
bValue = false && (++iValue > 5);   // 뒤에 부분은 때때로 무시된다
Console.WriteLine(iValue);  // output : 10

// 조건부 논리 Or 연산자 ||
// 빠른 계산을 위해 true || x(논리자료형) 의 경우 어떠한 논리자료형이 있어도
// 결과는 항상 true이기 때문에 true || x 에서 x는 무시하게 됨
iValue = 10;
bValue = true || (++iValue > 5);
Console.WriteLine(iValue);  // output : 10

 

/****************************************************************
 * 비트 연산자
 ****************************************************************/

// <단항 연산자>
iValue = ~0x35;         // ~(비트 보수) : 데이터를 비트단위로 보수 연산 (보수 : 0->1, 1->0)

// <이진 연산자>
iValue = 0x11 & 0x83;   // &(And) : 데이터를 비트단위로 And 연산
iValue = 0x11 | 0x83;   // |(Or) : 데이터를 비트단위로 Or 연산
iValue = 0x11 ^ 0x83;   // ^(Xor) : 데이터를 비트단위로 Xor 연산

// <비트 쉬프트 연산자>
iValue = 0x20 << 2;     // << : 왼쪽의 피연산자의 비트를 오른쪽 피연산자만큼 왼쪽으로 이동
iValue = 0x20 >> 2;     // >> : 왼쪽의 피연산자의 비트를 오른쪽 피연산자만큼 오른쪽으로 이동

 

 

- 예시 : 유니티 레이어마스크를 나누어 사용할때 최적화적 문제로 비트 쉬프트 연산자를 사용하기도 한다.

'개발관련공부자료' 카테고리의 다른 글

객체지향 프로그래밍  (0) 2023.09.22
메모리 구조  (0) 2023.09.22
클래스 (Class)  (0) 2023.09.22
함수(Function)  (0) 2023.09.22
자료형(Data Type)  (0) 2023.09.22