Programming/C++14

[C++14] Binary Literal (이진 상수)

cloudstudyJ 2024. 3. 29. 16:39

C++14에 새로 생긴 Language Feature로, 2진수 상수를 직접 작성할 수 있다.

상수 선언 시 접두사로 "0b" 혹은 "0B" 를 붙여주어 사용한다.

 

int main() {
    int binNumber1 = 0b00001000;    // == Decimal 8
    int binNumber2 = 0B00001101;    // == Decimal 13

    return 0;
}

 

 

+ 8진수나 16진수도 가능하다.

  •   8진수: 상수 선언 시 접두사로 '0' 사용
  • 16진수: 상수 선언 시 접두사로 "0x" 혹은 "0X" 사용

* 16진수의 경우 대/소문자를 구분하지 않는다 (섞어 써도 상관 없다)

 

int main() {
    int octNumber = 075;            // == Decimal 61
    
    int hexNumber1 = 0x0000AD07;    // == Decimal 44295
    int hexNumber2 = 0X7aCf;        // == Decimal 31439

    return 0;
}

 

 

※ 만약 16진수 상수가 'e' 혹은 'E' 로 끝나면서 '+' 혹은 '-' 연산자를 함께 사용하는 경우

     띄워쓰기나 괄호를 통해서 서로 분리해주어야 한다.

 

int main() {
    auto x = 0xE+2.0;      // ERROR
    auto y = 0xE + 2.0;    // OK
    auto z = (0xE)+2.0;    // OK
    
    auto w = 0xa+2.0;      // OK

    return 0;
}

Reference