2진수를 입렵하려면 어떤 방법을 써야하나요?


const x = 00010000;

이렇게 8진수는 0, 16진수는 0x로 시작하는 것처럼 2진수를 지정하는 기능이 있나요?


조회수 257


1 답변


좋아요
0
싫어요
채택취소하기

GCC에서 - 0b

GCC를 쓰고 있다면 C++14 표준에서는 앞에 0b를 붙입니다.

int x = 0b00010000;

BOOST_BINARY

boost 라이브러리를 쓰려면, itoa() 함수를 써야 합니다. itoa()는 비표준 함수이기 때문에 직접 정의해야 할 수도 있습니다.

#include <boost/utility/binary.hpp>
#include <stdio.h>
#include <stdlib.h>
#include <bitset>
#include <iostream>
#include <iomanip>

using namespace std;

int main() {
  unsigned short b = BOOST_BINARY( 10010 );
  char buf[sizeof(b)*8+1];
  printf("hex: %04x, dec: %u, oct: %06o, bin: %16s\n", b, b, b, itoa(b, buf, 2));
  cout << setfill('0') <<
    "hex: " << hex << setw(4) << b << ", " <<
    "dec: " << dec << b << ", " <<
    "oct: " << oct << setw(6) << b << ", " <<
    "bin: " << bitset< 16 >(b) << endl;
  return 0;
}

출력:

hex: 0012, dec: 18, oct: 000022, bin:            10010
hex: 0012, dec: 18, oct: 000022, bin: 0000000000010010
  • 2016년 02월 01일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close