반응형
1) 논리 연산자(&, |, ^, ~)
비트 연산자에는
1. &(AND)
2. |(OR)
3. ^(XOR)
4. ~(NOT) 가 있다.
다음과 같이 비트 연산자를 이용할 수 있으며
#include <stdio.h>
int main()
{
char a = 12, b = 10;
printf("%d\n", a & b);
printf("%d\n", a | b);
printf("%d\n", a ^ b);
printf("%d\n", ~a);
}
이에 대한 출력 값은 다음과 같다.
8
14
6
-13
2) Shift 연산자
Shift 연산자에는 <<, >>가 있으며
<<는 왼쪽으로 비트를 이동하는 연산자, >> 는 오른쪽으로 비트를 이동하는 연산자이다.
다음과 같이 shift 연산자를 이용할 수 있으며
#include <stdio.h>
int main()
{
char a = 22;
printf("%d\n", a << 1);
printf("%d\n", a << 3);
printf("%d\n", a << 3);
printf("%d\n", a >> 1);
printf("%d\n", a >> 3);
printf("%d\n", a >> 6);
}
이에 대한 출력 값은 다음과 같다.
44
176
1408
11
2
0
여기서 a의 범위는 char인데 char의 범위(-128~127)를 뛰어 넘는 숫자가 출력되는 것을 볼 수 있는데, 이는 C언어에서 자동적으로 범위가 더 큰 자료형으로 변환을 시켜주기 때문이다.
하지만 >>연산자에서는 자료형을 변환시켜주지 않는다는 것에 유의하자.
반응형
'C언어' 카테고리의 다른 글
파일 입출력 (0) | 2021.01.16 |
---|---|
#define의 활용, 매크로 (0) | 2021.01.15 |