VisualStudio.C++.C#/C . C++
C, C++. 상수 2진수 , 16진수
i.got.it
2020. 1. 3. 20:04
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);
}