[C++] String to Hex 변환

Programming/C/C++ 2012. 10. 12. 16:59 Posted by 알 수 없는 사용자


프로그래밍 중에 텍스트 파일에서 16진수 형태의 문자열을 읽어와서 정수형으로 변환해 줘야 할 경우가 종종 발생합니다. 이러한 경우에 다음과 같은 stringstream 클래스를 사용하면 매우 간단하게 구현할 수 있습니다. 


stringstream 클래스 객체를 생성하면서 인자로 변환할 문자열 값을 넣어주고, 오퍼레이터 연산자(>>)를 사용하여 헥스 값으로 변환할 수 있습니다. 반대로 헥스 값에서 문자열을 추출하고 싶다면 오퍼레이터 연산자를 반대로 사용한 뒤, str() 메소드를 호출하면 문자열 값을 쉽게 얻을 수 있습니다.


#include 
#include 
using namespace std;

int main(void)
{
	char *strHexValue = "0xdeadbeef";
	unsigned int nHexValue;

	// String to Hex
	stringstream convert(strHexValue);
	convert >> std::hex >> nHexValue;
	cout << std::hex << nHexValue << endl;

	// Hex to String
	stringstream convert_invert;
	convert_invert << std::hex << nHexValue;
	cout << convert_invert.str() << endl;

	return 0;
}
AND