모두의 코드
C++ 레퍼런스 - std::dec, hex, oct 조작자들

작성일 : 2019-04-27 이 글은 723 번 읽혔습니다.

아직 C++ 에 친숙하지 않다면 씹어먹는 C++ 은 어때요?

std::dec, std::hex, std::oct

<ios> 에 정의됨

std::ios_base& dec(std::ios_base& str);
std::ios_base& hex(std::ios_base& str);
std::ios_base& oct(std::ios_base& str);

정수 입출력 연산의 진법을 바꾼다.

이 함수들은 입출력 조작자(manipulator) 라고 불리며, std::basic_ostream 의 출력 연산자 (<<) 나 std::basic_istream 의 입력 연산자 (>>) 와 함께 사용할 수 있다.

참고로 조작자에 의해 한 번 스트림의 진법 형식이 바뀌면 계속 유지된다.

인자

리턴값

바뀐 입출력 스트림 (str)

실행 예제

#include <iostream>
#include <sstream>
int main() {
  std::cout << "42 를 8 진법으로  : " << std::oct << 42 << '\n'
            << "42 를 10 진법으로 : " << std::dec << 42 << '\n'
            << "42 를 16 진법으로 : " << std::hex << 42 << '\n';
  int n;
  std::istringstream("2A") >> std::hex >> n;
  std::cout << std::dec << "'2A' 를 16 진법으로 읽어들인 값은 " << n << '\n';
  std::cout << std::hex << "42 는 16 진법으로 " << 42
            << " 이고 21 은 16 진법으로 " << 21 << '\n';
}

실행 결과

42 를 8 진법으로  : 52
42 를 10 진법으로 : 42
42 를 16 진법으로 : 2a
'2A' 를 16 진법으로 읽어들인 값은 42
42 는 16 진법으로 2a 이고 21 은 16 진법으로 15

참고 자료

첫 댓글을 달아주세요!
프로필 사진 없음
강좌에 관련 없이 궁금한 내용은 여기를 사용해주세요