본문 바로가기
C++ Programming/기억해야할 점

3. shift, bool, 논리 연산자, 3항 연산자

by 쵸빙 2020. 5. 3.

shift 연산과 bool형 자료 사용법, 논리 연산자에 대해 정리해보겠다.

 

 

 

 

 

● Shift 연산

1.  왼쪽 비트시프트 (<<)

- 오른쪽에 0이 주어진 개수만큼 추가된다.

- a, b가 있다면 a << b하면 a를 2^b배 곱한 값.

 

 

 

2. 오른쪽 비트시프트 (>>)

- 왼쪽에 0 (0 또는 양의 정수인 경우), 1 (음의 정수인 경우)이 개수만큼 추가된다.

- 나누기

 

 

 

 

 

● bool 사용

1. NOT

입력은 똑같이 scanf("%d", &a)로 받은 다음 not 연산해서 출력

 

printf("%d", !a);

 

 

2. AND

둘 다 참인 경우만 참을 출력하는 경우

 

scanf(“%d%d”, &a, &b);

printf(“%d”, a&&b);

 

 

 

3. OR

둘 중의 하나만 참인 경우에 참을 출력

 

printf("%d", a||b);

 

 

 

 

4. XOR

둘이 같을 때에만 참을 출력

 

printf("%d", (a&&!b) || (!a&&b));

 

 

 

5. 둘 다 거짓일 경우에만 참

 

printf("%d", (!a && !b));

 

 

 

 

 

 

 

● 비트단위 연산자

 

~ (bitwise not)

& (bitwise and)

| (bitwise or)

^ (bitwise xor)

<< (bitwise left shift)

>> (bitwise right shift)

 

 

 

 

1. 비트 단위로 참/거짓을 바꾼 후 정수로 출력하기

 

printf("%d", ~a);

 

 

 

 

 

 

 

● 3항 연산자

 

1. a, b, c의 세 개의 값 중에서 가장 큰 값 출력하기

 

 

(a>b ? a: b) > c ? (a > b ? a : b) : c

 

먼저 a와 b를 비교해서 큰 것을 고른 뒤, c와 비교해서 더 큰 것을 최종적으로 고른다.

 

 

 

 

 

 

 

 

 

계속 공부해나가면서 shift, bool, 논리 연산자, 3항 연산자와 관련하여 기억해야할 점을 채워나가겠다.

'C++ Programming > 기억해야할 점' 카테고리의 다른 글

6. 문자열 다루기  (0) 2020.05.03
5. 알고리즘  (0) 2020.05.03
4. switch문, goto문  (0) 2020.05.03
2. 출력  (0) 2020.05.03
1. 입력  (0) 2020.05.03