본문 바로가기

Study/C C++

[두들낙서] 연산

대입연산

 - =를 사용하여 변수에 수를 대입하는 연산법

 ex) a = a + 6, a = a * 7 ..

 - +=, -=, *=, /= 등으로 깔끔한 형태로 만들 수 있다.

 ex) a += 6, a *= 7 ..

 

가감산

 - ++, --를 사용하여 1씩 가감산을 할 수 있다.

 ex) (a++) = (a = a + 1)

 - 전치: 연산을 할 때, 가감산을 먼저 한다.

 ex) a = 10;

     b = ++a;

     a : 11, b : 11

 - 후치: 연산을 할 때, 가감산은 제일 마지막에 한다.

 ex) a = 10;

     b = a++;

     a : 11, b : 10

 

비교연산

 - >, <, == 등을 사용하여 비교 대상들의 관계에 대해 참, 거짓 값을 리턴한다.

 - int: 참 = 1, 거짓 = 0이고 bool(1byte): 참 = 1, 거짓 = 0이다. (크기만 다를 뿐, 입력되는 값은 같다)

 ex) a = 10;

      b = 11;

      p = a > b;

      q = a < b;

      r = a == b;

      p : 0, q : 1, r : 0

 

논리연산

 - &&, ||, ! 등을 사용하여 논리연산을 만들고, 주로 비교연산과 함께 쓴다.

 ex) AND 연산: [(a >= 1) && (a <= 10)]는 [1 <= a <= 10]과 같다.

      OR 연산: [(a <= 1) || (a >= 10)]는 [1 < a < 10]이 아닌 것과 같다. ( = [!(1 < a < 10)] )

      NOT 연산: [!(a >= 1)]는 [a < 1]과 같다.

 

비트연산

 - &, |, ^, ~ 등을 이용하여 2진법으로 이루어진 비트들을 연산한다

 ex) a = 12, b = 10;

      AND 연산: a & b == 8  00001100 AND 00001010 -> 00001000

      OR 연산: a | b == 14  00001100 OR 00001010 -> 00001110

      XOR 연산: a ^ b == 6  00001100 XOR 00001010 -> 00000110

      NOT 연산: ~a == -13  00001100 -> 11110011

 

Shift 연산

 - <<. >> 등을 이용하여 2진법으로 이루어진 비트들을 왼쪽이나 오른쪽으로 옮긴다

 주의 옮겨지면서 없어지는 비트값이 생긴다

 주의 메모리 크기가 더 큰 자료형으로 바뀌어서 의도치 않은 결과값을 낼 수 있다

 ex) char a = 22;

      a << 1 == 44  

      a << 3 == 176  

      a << 6 == 1408  00010110 -> 00000000/00010110 -> 01011000/00000000

      a >> 1 == 11  00010110 -> 00001011

      a >> 3 == 2  

      a >> 6 == 0  00010110 -> 00000000

      

'Study > C C++' 카테고리의 다른 글

[두들낙서] 배열  (0) 2021.02.28
[두들낙서] 반복문  (0) 2021.02.28
[두들낙서] 조건문  (0) 2021.02.26
[두들낙서] 자료형  (0) 2021.01.26
C언어 공부 계획  (0) 2021.01.12