16진수

- 숫자앞에 0x부착. 예 . 0xAC 16진수 이므로 0,..,9,A,B,C,D,E,F 로만 구성. 소문자로 해도됨.

- 16진수 표현 문법은 모든 C, C++ 컴파일러에서 동일하여 완전한 표준으로 생각해도됨. 

 

 

2진수

- 숫자앞에 0b 부착. 예. 0b10010001. 2진수이므로 1과0으로만 구성.

- C++ 14 에서는 가독성 향상 목적으로  구분자' 사용해도됨. 예 : 0b1000'0001

- 원래 C 언어에는 2진수 표현 표준규격없었음. 

- 컴파일러마다 0b 를 2진수로 처리가능한 경우도 있고, 아닌 경우도 있음. 

- gcc 에서는 0b 가능. KEIL MDK-ARM 에서는 0b 모름. 

 

 

2진수 표현 위한 마크로 

- 모든 C 컴파일러에서 사용가능하려면 아래 코드예처럼 마크로 이용해도 된다. 

 

#define BIN_TO_BYTE(b7,b6,b5,b4,b3,b2,b1,b0) ((b7 << 7)+(b6 << 6)+(b5 << 5)+(b4 << 4)+(b3 << 3)+(b2 << 2)+(b1 << 1)+b0)

void main(void)
{
  uint8_t x = BIN_TO_BYTE(1,1,1,1,1,0,0,0);
}

 

 

 

 

 

 

 

 

 

 

 

Posted by 리치굿맨

댓글을 달아 주세요