Bit 연산자 ALU Arithmetic and Logical Unit
⭐ Bit 연산자 ⭐
임베디드 영역에서는 비트를 자유자재로 다루는 법이 중요합니다. 때문에 C언어를 모두 학습한 후에 돌아와 주시길 바랍니다.
Bit 연산자에 대해 학습하겠습니다.
예를 들어
GPIO 선언 시 struct를 통해 선언된 레지스터들을 조작할 때 일정 비트를 ON/OFF 하거나,
데이터를 받아드릴때 하위/상위 비트를 뽑아 사용할 때,
데이터를 나누거나 곱하는 가공에도 사용됩니다.
마이크로 프로세서를 접해보지 못한 사람은 다소 어렵게 느껴질 수 있습니다.
간단한 예를 들어
각 비트를 방에 있는 불을 켜는 스위치라고 생각하고 거실에 있는 스위치(첫번째 비트 0000 0000)를 키고자할 때
첫번째 비트(0000 0001)를 켜주면 됩니다.
& : 최하위 4bit 추출
| : bit 1로 설정
^ : XOR 특정 비트만 반전
~ : 1의 보수
» : 나누기, 원하는 비트 위치로 옮김
>> 1
→ 2 나누기
>> 2
→ 4 나누기 0001 0000 → 0000 01000
>> 3
→ 8 나누기
« : 곱하기, 원하는 비트 위치로 옮김
>> 1
→ 2 곱하기
>> 2
→ 4 곱하기
>> 3
→ 8 곱하기