//초기값 
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
#include<stdio.h>

int sum(int, int);//프로토 타입

int main() {//메인
	int A = 1;
	int B = 2;
	int result = sum(A, B);

	printf("A+B = %d", result);

	return 0;
}

int sum(int A, int B) {//함수
	int result = A + B;

	return result;
}

C언어의 함수 사용법은

프로토타입(선언)후 호출(정의)순서이다

 

컴파일러에게 ~한 함수가 있다고 프로토타입으로 알린 후

함수를 정의해서 사용한다

'Programming > C' 카테고리의 다른 글

[C언어] 비트연산자  (0) 2020.09.23

+ Recent posts