# Data Conversions

By , 28 Jun 2002

## Introduction

Here are a few data conversions with small examples :-

## Decimal Conversions

### Decimal To Hex

```// Use _itoa( ) function and set radix to 16.

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

// In hexstring is 1e.```

### Hex To Decimal

```// You can use strtol function and you can specify base.

char * hexstring= "ABCDEF";
char * p;
int number = strtol(hexstring, &p,16);

//  A function that does this

bool HexToDecimal (char* HexNumber, int& Number)
{
char* pStopString;
Number = strtol (HexNumber, &pStopString, 16);
return (bool)(Number != LONG_MAX);
}```

### Decimal to time

```char *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;
}```

## String Conversions

### String to Hex

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

### Hex to CString

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

### COleVariant to CString

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

### CString to char pointer

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

### char pointer to CString

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

### Double to CString including the fractional part

```CString 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

```CString strValue;
int decimal,sign;

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

### CString To Double

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

### CString to LPCSTR

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

### CString to LPSTR

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

### CString to WCHAR*

```CString 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

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

### string to BSTR

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

### CString to BSTR

```CString str = "whatever" ;
BSTR resultsString = str.AllocSysString(); ```

### _bstr_t to CString

```#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);```

## Character arrays

### Char array to integer

```char MyArray[20];
int nValue;

nValue = atoi(MyArray);```

### Char array to float

```char MyArray[20];
float fValue;

fValue = atof(MyArray);```

### Char Pointer to double

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

### Char Pointer to integer

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

### Char Pointer to long

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

### Char* to BSTR

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

### Float to WORD and Vice Versa

```float 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
```

## Conclusion

All luck and have a great time. I've checked most of the code above, but if I've been wrong somewhere, I'd like to know about it so that I can modify it. Thank you.

A list of licenses authors might use can be found here

Founder
India
No Biography provided

Votes of 3 or less require a comment

Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
 Search this forum Profile popups    Spacing RelaxedCompactTight   Noise Very HighHighMediumLowVery Low   Layout Open AllThread ViewNo JavascriptPreview   Per page 102550
 First PrevNext
 My vote of 5 nand sharma 24-Apr-13 22:35
 My vote of 5 lbsx 30-Dec-11 20:50
 My vote of 5 jhoesche02 29-Mar-11 10:32
 My vote of 5 goldenrose9 18-Jan-11 4:14
 UTF-8 to ASCII string prashu100 2-Jul-10 21:42
 Conversion of BYTE to CString and Viceversa g_satish 9-Sep-09 1:02
 Can any one provide how to convert a BYTE to CString. If you can help me it would be great. Sign In·View Thread·Permalink
 Double to CString Conversion mazhar_cse 12-Aug-08 20:49
 Very useful Mike Hankey 13-Jul-08 12:50
 Data Conversion priestnall 11-Jul-08 7:55
 Conversion of CString to uchar Ramya Suvarna 17-Jul-07 17:45
 thanx sony fernando 23-May-07 19:04
 Thanx smzhaq 22-May-07 4:44
 CString to const WCHAR* smzhaq 22-May-07 3:37
 How to convert a CString to _bstr_t ganesa moorthy 10-Apr-07 1:32
 Re: How to convert a CString to _bstr_t J-D 20-Apr-07 4:35
 How to convert CString to wstring? Sunil Jampa 2-Jan-07 23:05
 converting byte array to hex string [modified] ranu_hai 26-Jul-06 20:43
 CString usage / conversion jpl78 18-May-06 0:35
 Re: CString usage / conversion metmac1 2-Aug-07 1:32
 Double to CString suggestion l00p1n6 2-Nov-05 12:50
 Re: Double to CString suggestion lagsita 25-Apr-06 23:19
 Bug in Double to CString viki666 25-Aug-05 0:55
 Re: Bug in Double to CString [modified] Nkwenti 9-Aug-07 0:55
 CString to char pointer Can Isin 18-Feb-05 6:28
 float to char[ ] ?? anindya12345 31-Jan-05 0:04
 char * to LPTSTR?? jerrelh 15-Dec-04 23:49
 Re: char * to LPTSTR?? Mircea Puiu 16-Dec-04 0:14
 Re: char * to LPTSTR?? l00p1n6 2-Nov-05 12:32
 char pointer to CString OsoPolar 7-Dec-04 8:10
 Re: char pointer to CString OsoPolar 7-Dec-04 8:16
 Re: char pointer to CString vmihalj 8-Sep-05 0:13
 wchar to float sammyc 6-Dec-04 20:55
 Re: wchar to float Mehta Jigar 21-May-06 22:05
 A Simpler Way VGirish 24-Sep-04 0:14
 Re: A Simpler Way jasonslater2000 16-Feb-05 10:54
 Decode a UTF-8 file to a CString? d00_ape 30-Aug-04 1:51
 Re: Decode a UTF-8 file to a CString? peterchen 3-Jan-05 9:04
 Convert BSTR to char* (unicode to ascii Anonymous 7-Jan-04 6:12
 Re: Convert BSTR to char* (unicode to ascii Anonymous 3-Feb-04 6:24
 Re: Convert BSTR to char* (unicode to ascii Anonymous 11-Nov-04 21:15
 Prevent memory leaks, optimize for small strings EfimPechat 24-Nov-04 4:27
 Re: Convert BSTR to char* (unicode to ascii kp_95 20-Jan-05 10:55
 Re: Convert BSTR to char* (unicode to ascii Anonymous 8-Feb-05 7:51
 Re: Convert BSTR to char* (unicode to ascii Anonymous 8-Feb-05 7:53
 Last Visit: 31-Dec-99 18:00     Last Update: 18-Jun-13 11:03 Refresh 12 Next »

Web01 | 2.6.130617.1 | Last Updated 29 Jun 2002