English

g++

Konverze hex do int. Konverze hexadecimální adresy třídy na hodnotu string a integer.


26.03.2007

Download zdrojáku (5.3kB)

Uložíme adresu třídy, která je v šestnáctkové soustavě hexa na string a integer.

1. Vytvoříme jednoducho třídu CHexToInt

#pragma once

#include <iostream>
#include <sstream>
using namespace std;

class CHexToInt
{
	string m_strId;			///< Class adress stored as string
	unsigned int m_iId;		///< Class adress stored as integer
    public:
        CHexToInt();
        ~CHexToInt();
};

2. V konstruktoru třídy

CHexToInt::CHexToInt()
{
	stringstream stream;
	// Convert class adress to string
	stream << this;
	m_strId = stream.str();
	cout << "m_strId = " << m_strId << endl;
	// Convert class adress to integer
	m_iId = (int) this;
	cout << "m_iId = " << m_iId << endl;
	// Convert integer back to hexadecimal
	char strHexa[10];
	sprintf(strHexa, "%x", m_iId);
	cout << "Int to Hex = " << strHexa << endl;
	// Test Int to Hex by cout
	cout << "Hex number = " << hex << m_strId << endl << endl;
}

2.1. Převedeme adresu třídy na string m_strId

stringstream stream;
// Convert hexadecimal class adress to string
stream << this;
m_strId = stream.str();

2.2. Převedeme adresu třídy na na integer m_iId

m_iId = (int) this;

2.3 Nakonec si ověříme převodem hodnoty int na hex, zda bude výsledná hodnota souhlasit s původní hexa hodnotou.

// Convert integer back to hexadecimal
char strHexa[10];
sprintf(strHexa, "%x", m_iId);
cout << "Int to Hex = " << strHexa << endl;
// Test Int to Hex by cout
cout << "Hex number = " << hex << m_strId << endl << endl;




home / g++


Valid XHTML 1.0 Transitional