www.xbdev.net
xbdev - software development
Thursday April 2, 2026
Home | Contact | Support | Data Conversion Exammples for C and C++..
     
 

Data Conversion Exammples

for C and C++..

 


As you learn with C and C++ you can't simply 'cast' an integer to a string or a wchar to a char - you have to 'convert' the data.

In C/C++ you're working with the 'raw' data - bits and bytes - so to do any conversion - you have do it yourself or use one of the numerous libraries.


PART ONE: Decimal Conversions


Decimal To Hexadecimal


Use
_itoa()
function and set radix to 16.

hexstring[10]; int number = 30; itoa(number, hexstring, 16);

In hexstring is
1e
.

Hexadecimal To Decimal


a) You can use
strtol
function and specify base:
*hexstring = "ABCDEF"; char *p; int number = strtol(hexstring, &p, 16);


b) Or you can use this:
HexToDecimal(char* HexNumber, int& Number) { char* pStopString; Number = strtol(HexNumber, &pStopString, 16); return (bool)(Number != LONG_MAX); }


Decimal to Time


*DecToTime(float fTime, char *szTime) { int nHrs, nMin, nSec; fTime *= 3600; nHrs = (int)fTime / 3600; nMin = (int)(fTime - nHrs * 3600) / 60; nSec = (int)(fTime - nHrs * 3600 - nMin * 60); wsprintf(szTime, "%02d.%02d.%02d Hrs.Min.Sec.", nHrs, nMin, nSec); return szTime; }




PART TWO: String Conversions


String to Hexadecimal


f(string, "%04X", &your_word16); // where string = your string and 04 = length of your string and X = hex


Hex to CString


ng Str; unsigned char Write_Buff[1]; Write_Buff[0] = 0x01; Str.Format("0x0%x", Write_Buff[0]);


COleVariant to CString


ng strTemp; COleVariant Var; Var = "FirstName"; strTemp = Var.bstrVal; AfxMessageBox(strTemp);


CString to Char Pointer


an>) CString MyString = "ABCDEF"; char *szMyString = (char *)(LPCTSTR)MyString; b) char *pBuffer = new char[1024]; CString strBuf = "Test"; pBuffer = strBuf.GetBuffer(sizeof(pBuffer));


Char Pointer to CString


*mystring = "12345"; CString string = mystring;


Double to CString including the fractional part


ng strValue, strInt, strDecimal; int decimal, sign; double dValue = 4.125; strValue = _fcvt(dValue, 6, &decimal, &sign); // Now decimal contains 1 because there is only one digit before the . strInt = strValue.Left(decimal); // strInt contains 4 strDecimal = strValue.Mid(decimal); // strDecimal contains 125 CString strFinalVal; strFinalVal.Format("%s.%s", strInt, strDecimal); // strFinalVal contains 4.125


Double To CString


ng strValue; int decimal, sign; double dValue = 123456789101112; strValue = _ecvt(dValue, 15, &decimal, &sign);


CString To Double


lue = "121110987654321"; dValue = atof(strValue);


CString to LPCSTR


ng str1 = _T("My String"); int nLen = str1.GetLength(); LPCSTR lpszBuf = str1.GetBuffer(nLen); // here do something with lpszBuf........... str1.ReleaseBuffer();


CString to LPSTR


ng str = _T("My String"); int nLen = str.GetLength(); LPTSTR lpszBuf = str.GetBuffer(nLen); // here do something with lpszBuf........... str.ReleaseBuffer();


CString to WCHAR*


ng str = "A string here"; LPWSTR lpszW = new WCHAR[255]; LPTSTR lpStr = str.GetBuffer(str.GetLength()); int nLen = MultiByteToWideChar(CP_ACP, 0, lpStr, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, lpStr, -1, lpszW, nLen); AFunctionUsesWCHAR(lpszW); delete[] lpszW;


LPTSTR to LPWSTR


Len = MultiByteToWideChar(CP_ACP, 0, lptStr, -1, NULL, NULL); MultiByteToWideChar(CP_ACP, 0, lptStr, -1, lpwStr, nLen);


string to BSTR


g ss = "Girish"; BSTR _bstr_home = A2BSTR(ss.c_str());


CString to BSTR


ng str = "whatever"; BSTR resultsString = str.AllocSysString();


_bstr_t to CString


n>#include <ANSIAPI.H> #include <comdef.h> _bstr_t bsText("Hai Bayram"); CString strName; W2A(bsText, strName.GetBuffer(256), 256); strName.ReleaseBuffer(); AfxMessageBox(strName); char szFileName[256]; GetModuleFileName(NULL, szFileName, 256); AfxMessageBox(szFileName);




PART THREE: Character Arrays


Char array to integer


MyArray[20]; int nValue; nValue = atoi(MyArray);


Char array to float


MyArray[20]; float fValue; fValue = atof(MyArray);


Char Pointer to double


*str = " -343.23 "; double dVal; dVal = atof(str);


Char Pointer to integer


*str = " -343.23 "; int iVal; iVal = atoi(str);


Char Pointer to long


*str = "99999"; long lVal; lVal = atol(str);


Char* to BSTR


*p = "whatever"; _bstr_t bstr = p;


Float to WORD and Vice Versa


fVar; WORD wVar; fVar = 247.346; wVar = (WORD)fVar; // Converting from float to WORD. The value in wVar would be 247 wVar = 247; fVar = (float)fVar; // Converting from WORD to float. The value in fVar would be 247.00








 
Advert (Support Website)

 
 Visitor:
Copyright (c) 2002-2026 xbdev.net - All rights reserved.
Designated articles, tutorials and software are the property of their respective owners.