//초기값
int keyPin = 0; // 0000 0000
//LED컨트롤
int LED1 = 1; 0000 0001
int LED2 = 5; 0000 0101
keyPin = num1 | num2; //1번LED와 3번LED ON
비트연산자는 C언어에서 필수로 사용되는 기능이다
C언어가 임베디드분야에서 사용되기 때문
그리고 기계를 컨트롤할때 비트연산자가 사용된다
#include<stdio.h>
int main() {
int num1 = 1;// 0000 0001
int num2 = 5;// 0000 0101
printf("%d\n", num1 & num2);//AND : 0000 0001
printf("%d\n", num1 | num2);//OR : 0000 0101
printf("%d\n", num1 ^ num2);//XOR : 0000 0100
return 0;
}
0000 0000 는 2진수 표기법이다
컴퓨터가 사용하는 연산 방식으로 0과 1만 사용한다
왼쪽부터 1 2 4 8 16 32 64 128 256..
숫자 1은 0000 0001
숫자 5는 0000 0101
숫자 35는 0010 0011
이러한 방식으로 숫자를 표기한다
0 : false
1 : true
숫자로 설명하면
&(AND) : 둘 다 같으면 1 같지 않으면 0
| (OR) : 둘 중에 하나라도 1이면 1
^(XOR) : 둘다 같으면 0 같지 않으면 1
#임베디드에서의 사용방식
0 : 전류 차단
1 : 전류 통과
포트번호 : 8765 4321
동작신호 : 0000 0000
동작신호가 0이면 OFF, 1이면 ON이다
포트번호 1 : 첫번째 LED ON
포트번호 2 : 두번째 LED ON
포트번호 3 : 세번째 LED ON
..
..
이라고 가정하면
//초기값
int keyPin = 0; // 0000 0000
//LED컨트롤
int LED1 = 1; //0000 0001, 첫번째 LED를 키는 신호
int LED2 = 2; //0000 0010, 두번째 LED를 키는 신호
int OFF = 0; //0000 0000, 모든 LED를 끔
keyPin = keyPin | LED1; //1번 LED ON
keyPin = keyPin | LED2; //2번 LED ON
keyPin = OFF; //LED 전부 끄기
이러한 방식으로 사용된다
'Programming > C' 카테고리의 다른 글
| [C언어] 함수 (0) | 2020.09.23 |
|---|