C언어: [비트연산자]

황정욱·2022년 10월 14일
0
post-thumbnail

비트연산자는 3개다 &, |, ^

비트연산자는 2진법을 사용한다.
비트연산은 오직 정수만 비교한다.

5라는 숫자를 이진법으로 표현하면 0101 10은 10101이다.
이때 각 자릿수를 비교한다.

0101 --> 5
1010 --> 10

&을 사용하고 각 자릿수를 비교했는데 둘다 1이면 1을 반환. 하나라도 0이면 0을 반환
|을 사용하고 각 자릿수를 비교했는데 둘다 1이면 1, 하나라도 1이면 1, 둘다 0이면 0을 반환
^을 사용하고 각 자릿수를 비교했는데 둘이 다르면 1, 둘이 같으면 0을 반환.
^는 XOR이라고 불린다.

이렇게 각 자릿수를 비교하여 새오운 조합의 이진수를 만든다. 만들어진 이진수를 정수 타입의 변수에 대입하면 이진법을 10진법으로 바꾸고 10진법으로 출력을 할 수 있다.

#include <stdio.h>

void main()
{
	// 비트연산자
	int num1 = 11;		// 1011
	int num2 = 15;		// 1111

	int number = num1 & num2;	// 1011
	printf("%d\n", number);		// 11

	number = num1 | num2;		// 1111
	printf("%d\n", number);		// 15

	number = num1 ^ num2;		// 0100
	printf("%d\n", number);		// 4

	

	getchar();
}

11을 2진수로 표현하면 1011
15를 2진수로 표현하면 1111

& --> 1011
| --> 1111
^ --> 0100

1011를 10진수로 다시 표현하면 11
1111을 10진수로 다시 표현하면 15
0100을 10진수로 다시 표현하면 4

가 출력되는 것을 볼 수 있다.

profile
C언어, C#, 그리고 유니티

0개의 댓글