CS/Embedded System

Bit Operator

WakaraNai 2021. 10. 13. 11:51
728x90
반응형
  • Byte : CPU와 메모리 간 data를 읽고 쓸 때 를 최소 단위

 

  • 2의 보수
    • 11은 8bit 이진수로 00001011
    • 이 때 not을 붙여 각 자리를 뒤집으면 11110100
    • -11은 이진수로 11110100라고 표현
  • formatting %08x
    • x(hexa)로 8자리를 표현하는데  - 주소가 32bit라서 8자리를 많이 사용
    • 빈 자리는 0을 채워넣어라
    • a -> “%08x” -> 0000000a
  • Shift 연산자는 0으로 빈 자리를 채움
    • C언어에서 이진수의 맨 앞 자리가 1, 0에 따라 양수, 음수 판별
    • 양수라면 맨 앞자리를 0으로, 음수라면 1로 채웜

 

  • 원하는 자리만 1로 바꾸기
    •  ??  or(|)  1<<x
      • #define BIT6 (unit16_t)(1<<6)
      • #define BIT7 (1<<7)
      • DATA |= BIT7;
  • 원하는 자리만 0으로 나머지는 1로 바꾸기
    • ??  and(&)  ~(1<<x)
      • DATA  &=  ~BIT6;

 

  • 원하는 자리가 1인지 확인하기
    • & AND
      • if  (DATA & BIT6)
    • 해당 자리가 1이라면 1로, 아니면 0으로,
    • 나머지는 무조건 0

 

  • 원하는 자리가 0인지 확인
    • if  ( ! (DATA & BIT6))

 

 

 

Bit Color Mixing

0000 0001 -> 빨강 (1<<0) 

0000 0010 -> 초록 (1<<1)

0000 0100 -> 파랑 (1<<2)

0000 0111 -> 하얀색

 

0010 = 1<<1

0011 = 0010 | 1<<0

0001 = 0011 & ~(1<<1)

0101 = 0001 | 1<<2

 

728x90
반응형

'CS > Embedded System' 카테고리의 다른 글

Header file에 정의된 macro와 데이터형 이용하기  (0) 2021.10.13
[실습] Memory Map for P1.0 Red LED  (0) 2021.10.13
전자공학 기초 2  (0) 2021.10.13
Microprocessor 기초 - MSP432P4111  (0) 2021.10.13
전자공학 기초 1  (0) 2021.10.13