C_프로그래밍

[C 프로그래밍] 9장. 비트 연산자

팔공산호랑이 2020. 4. 4. 08:27

비트 연산자에 대해서 살펴보기전에

비트에 대해서 알아보겠습니다.

비트란 컴퓨터가 저장하는

데이터의 최소 단위로

기계어, , 2진수의 한자리를 말합니다.

이진수 01001이 있을 경우

오른쪽 끝에 있는 1처럼 이 한자리를 비트라고 말합니다.

------------------------------------------

비트란것은 원레 작은 조각이라는 뜻이고

그 뜻이 컴퓨터에서는 데이터의 최소단위로 불리게 되었습니다.

------------------------------------------

우선 처음으로

3가지 비트 연산자

비트 and, 비트 or, 비트 xor 살펴보겠습니다.

And, or은 기본적으로 논리연산자의 and, or과 비슷합니다.

And는 둘 다 참이어야 결과가 참이 되는 것처럼

비트 and는 같은 자리의 비트 둘 다 1이어야 결과가 1이 되고

Or은 둘 다 참이어야 결과가 참이 되는 것처럼

비트 or은 같은 자리의 비트 둘 중 하나라도 1이면 결과가 1이 됩니다.

비트 xor처음보는 것인데

다음에서 차근차근 살펴보겠습니다.

------------------------------------------

비트 and의 예를 살펴보겠습니다.

3 비트 and 4를 했을 경우

342진수로 변환한다음

같은 자리 끼리 비트 and를 해줍니다.

그러면 보시다시피 결과가 0 이 됩니다.

------------------------------------------

비트 or의 예를 살펴보겠습니다.

3 비트 or 4를 했을 경우

342진수로 변환한다음

같은 자리 끼리 비트 or을 해줍니다.

그러면 보시다시피 결과가 7 이 됩니다.

------------------------------------------

------------------------------------------

------------------------------------------

------------------------------------------

그 다음 비트 xor에 대해서 살펴보겠습니다.

xorexclusive or줄임말로

Exclusive는 배타적인 이라는 뜻입니다.

xor은 서로 다른 값일 경우에만 참, 1이 됩니다.

1 비트 xor 0

0 비트 xor 1

결과가 1이 됩니다.

------------------------------------------

이렇게 36을 비트 XOR해주게 되면

서로 다른 비트만 결과가 1이되어

결과는 5가 나오게 됩니다.

------------------------------------------

------------------------------------------

그 다음 나머지 비트 연산자 3가지를 살펴보겠습니다.

비트 반전, 비트 왼쪽 이동, 비트 오른쪽 이동 연산자 입니다.

비트 반전 연산자는

비트 01로 바꾸고

비트 10으로 바꿉니다.

그래서 말그대로 비트를 반전 시키는 연산자 입니다.

비트 왼쪽 이동 연산자는

전체 비트를 왼쪽으로 이동시키는 연산자 입니다.

비트 오른쪽 이동 연산자는

전체 비트를 오른쪽으로 이동시키는 연산자 입니다.

------------------------------------------

비트 반전 연산자는

비트 10으로 바꾸고

비트 01로 바꾸는 연산자 입니다.

------------------------------------------

------------------------------------------

 

비트 왼쪽 이동 연산자는

이렇게 4 비트 왼쪽 이동 1을 하게 되면

4비트를 왼쪽으로 1칸 이동시켜라 라는 말이 됩니다.

결과는 8이 됩니다.

왜냐하면 이진수를 왼쪽으로 이동시킬수록 2가 곱해진 효과가 나기 때문입니다.

------------------------------------------

------------------------------------------

 

비트 오른쪽 이동 연산자를 보면

4 비트 오른쪽 이동 1을 하게 되면

결과가 2가 나오게 됩니다.

왜나하면 2진수를 오른쪽으로 이동시키면 2로 나눈 효과가 나기 때문입니다.

------------------------------------------

 

------------------------------------------