Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

10진수에서 16진수로 및 그 반대로를 위한 C++의 StringStream

<시간/>

이 섹션에서는 C++에서 Decimal을 Hexadecimal 문자열로 변환하는 방법과 Hexadecimal 문자열에서 Decimal 문자열로 변환하는 방법을 살펴보겠습니다. 이 변환을 위해 우리는 C++의 stringstream 기능을 사용하고 있습니다.

문자열 스트림은 형식 지정, 구문 분석, 문자열을 숫자 값으로 변환 등에 사용됩니다. Hex는 IO 조작기입니다. IO 스트림을 매개변수로 참조하고 조작한 후 문자열에 대한 참조를 반환합니다.

다음 예에서는 10진수 또는 16진수를 변환하는 방법을 볼 것입니다.

예시 코드

#include<iostream>
#include<sstream>
using namespace std;
main(){
   int decimal = 61;
   stringstream my_ss;
   my_ss << hex << decimal;
   string res = my_ss.str();
   cout << "The hexadecimal value of 61 is: " << res;
}

출력

The hexadecimal value of 61 is: 3d

위의 예에서 추출 연산자 "<<"를 사용하여 10진수를 16진수로 변환합니다. 다음 예에서 우리는 반대로 할 것입니다. 이 예에서는 16진수 문자열을 16진수로 변환한 다음 삽입 연산자 ">>"를 사용하여 문자열 스트림을 정수로 저장합니다.

예시 코드

using namespace std;
main() {
   string hex_str = "0x3d"; //you may or may not add 0x before
   hex value
   unsigned int decimal;
   stringstream my_ss;
   my_ss << hex << hex_str;
   my_ss >> decimal;
   cout << "The Decimal value of 0x3d is: " << decimal;
}

출력

The Decimal value of 0x3d is: 61