[C 프로그래밍] 9장. 비트 연산자
비트 연산자에 대해서 살펴보기전에
비트에 대해서 알아보겠습니다.
비트란 컴퓨터가 저장하는
데이터의 최소 단위로
기계어, 즉, 2진수의 한자리를 말합니다.
이진수 01001이 있을 경우
오른쪽 끝에 있는 1처럼 이 한자리를 비트라고 말합니다.
------------------------------------------
비트란것은 원레 작은 조각이라는 뜻이고
그 뜻이 컴퓨터에서는 데이터의 최소단위로 불리게 되었습니다.
------------------------------------------
우선 처음으로
3가지 비트 연산자
비트 and, 비트 or, 비트 xor에 살펴보겠습니다.
And, or은 기본적으로 논리연산자의 and, or과 비슷합니다.
And는 둘 다 참이어야 결과가 참이 되는 것처럼
비트 and는 같은 자리의 비트 둘 다 1이어야 결과가 1이 되고
Or은 둘 다 참이어야 결과가 참이 되는 것처럼
비트 or은 같은 자리의 비트 둘 중 하나라도 1이면 결과가 1이 됩니다.
비트 xor은 처음보는 것인데
다음에서 차근차근 살펴보겠습니다.
------------------------------------------
비트 and의 예를 살펴보겠습니다.
3 비트 and 4를 했을 경우
3과 4를 2진수로 변환한다음
같은 자리 끼리 비트 and를 해줍니다.
그러면 보시다시피 결과가 0 이 됩니다.
------------------------------------------
비트 or의 예를 살펴보겠습니다.
3 비트 or 4를 했을 경우
3과 4를 2진수로 변환한다음
같은 자리 끼리 비트 or을 해줍니다.
그러면 보시다시피 결과가 7 이 됩니다.
------------------------------------------
------------------------------------------
------------------------------------------
------------------------------------------
그 다음 비트 xor에 대해서 살펴보겠습니다.
xor은 exclusive or의 줄임말로
Exclusive는 배타적인 이라는 뜻입니다.
이 xor은 서로 다른 값일 경우에만 참, 즉 1이 됩니다.
즉
1 비트 xor 0 과
0 비트 xor 1 만
결과가 1이 됩니다.
------------------------------------------
이렇게 3과 6을 비트 XOR해주게 되면
서로 다른 비트만 결과가 1이되어
결과는 5가 나오게 됩니다.
------------------------------------------
------------------------------------------
그 다음 나머지 비트 연산자 3가지를 살펴보겠습니다.
비트 반전, 비트 왼쪽 이동, 비트 오른쪽 이동 연산자 입니다.
비트 반전 연산자는
비트 0을 1로 바꾸고
비트 1을 0으로 바꿉니다.
그래서 말그대로 비트를 반전 시키는 연산자 입니다.
비트 왼쪽 이동 연산자는
전체 비트를 왼쪽으로 이동시키는 연산자 입니다.
비트 오른쪽 이동 연산자는
전체 비트를 오른쪽으로 이동시키는 연산자 입니다.
------------------------------------------
비트 반전 연산자는
비트 1을 0으로 바꾸고
비트 0을 1로 바꾸는 연산자 입니다.
------------------------------------------
------------------------------------------
비트 왼쪽 이동 연산자는
이렇게 4 비트 왼쪽 이동 1을 하게 되면
4의 비트를 왼쪽으로 1칸 이동시켜라 라는 말이 됩니다.
결과는 8이 됩니다.
왜냐하면 이진수를 왼쪽으로 이동시킬수록 2가 곱해진 효과가 나기 때문입니다.
------------------------------------------
------------------------------------------
비트 오른쪽 이동 연산자를 보면
4 비트 오른쪽 이동 1을 하게 되면
결과가 2가 나오게 됩니다.
왜나하면 2진수를 오른쪽으로 이동시키면 2로 나눈 효과가 나기 때문입니다.
------------------------------------------
------------------------------------------