(3-6)Operator

C/C언어 이론 2018. 10. 2. 14:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
void main()
{
    /*
        비트연산자 (bit)
            > 2진수로 연산을 하겠다!
            &    : AND    둘 다 1이어야 1, 아니면 0
            |    : OR    둘 중 하나만 1이면 1, 둘 다 0이면 0
            ^    : XOR    두 값이 다르면 1, 같으면 0
            ~    : 비트 전환, 0은 1로, 1은 0으로
            <<    : 비트를 좌측으로 이동
            >>    : 비트를 우측으로 이동
    */
 
    printf("4 & 2 = %d\n", (4&2));
    printf("3 & 2 = %d\n", (3&2));
    printf("3 | 2 = %d\n", (3|2));
    printf("3 ^ 2 = %d\n", (3^2));
 
    printf("8 << 2 = %d\n", (8<<2)); // 8 * 2^2 -> 8 * 4  = 32
    printf("8 >> 2 = %d\n", (8>>2)); // 8 * 2^-2 -> 8 / 4 = 2
 
    // 비트연산 자체가 일반적인 연산보다 속도가 빠르다.
    // 왜? 컴퓨터는 값을 bit 단위로 저장하고 있기 때문
    // 그 차이가 크지 않기 때문에, 굳이 비트연산 사용하지 않아도 됨
    // 꼭~~ 필요할 때만 사용
    // 가독성이 떨어진다. (암산하기 힘들다)
}
cs



'C > C언어 이론' 카테고리의 다른 글

(3-8)Operator  (0) 2018.10.02
(3-7)Operator  (0) 2018.10.02
(3-5)Operator  (0) 2018.10.02
(3-4)Operator  (0) 2018.10.02
(3-3)Operator  (0) 2018.10.02

설정

트랙백

댓글