12,701,051 members (29,274 online)
alternative version

374.4K views
141 bookmarked
Posted

# Data Conversions

, 28 Jun 2002
 Rate this:
These are a few samples of data conversions which you can use for a quick reference

## 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.

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

## About the Author

 Founder India
No Biography provided

## You may also be interested in...

 Pro Pro

## Comments and Discussions

 How can i convert the CString(example: chinese font) to UTF8 ? Member 263478330-Dec-07 6:15 Member 2634783 30-Dec-07 6:15
 Conversion of CString to uchar Ramya Suvarna17-Jul-07 18:45 Ramya Suvarna 17-Jul-07 18:45
 thanx sony fernando23-May-07 20:04 sony fernando 23-May-07 20:04
 Thanx smzhaq22-May-07 5:44 smzhaq 22-May-07 5:44
 CString to const WCHAR* smzhaq22-May-07 4:37 smzhaq 22-May-07 4:37
 How to convert a CString to _bstr_t ganesa moorthy10-Apr-07 2:32 ganesa moorthy 10-Apr-07 2:32
 Re: How to convert a CString to _bstr_t J-D20-Apr-07 5:35 J-D 20-Apr-07 5:35
 How to convert CString to wstring? Sunil Jampa3-Jan-07 0:05 Sunil Jampa 3-Jan-07 0:05
 where can i find the sample conversion of WideCharToMultiByte? SKhokalay22-Sep-06 1:50 SKhokalay 22-Sep-06 1:50
 Re: where can i find the sample conversion of WideCharToMultiByte? metmac12-Aug-07 2:17 metmac1 2-Aug-07 2:17
 converting byte array to hex string [modified] ranu_hai26-Jul-06 21:43 ranu_hai 26-Jul-06 21:43
 CString usage / conversion jpl7818-May-06 1:35 jpl78 18-May-06 1:35
 Re: CString usage / conversion metmac12-Aug-07 2:32 metmac1 2-Aug-07 2:32
 Double to CString suggestion l00p1n62-Nov-05 13:50 l00p1n6 2-Nov-05 13:50
 Re: Double to CString suggestion lagsita26-Apr-06 0:19 lagsita 26-Apr-06 0:19
 Bug in Double to CString viki66625-Aug-05 1:55 viki666 25-Aug-05 1:55
 Re: Bug in Double to CString [modified] Nkwenti9-Aug-07 1:55 Nkwenti 9-Aug-07 1:55
 CString to char pointer Can Isin18-Feb-05 7:28 Can Isin 18-Feb-05 7:28
 float to char[ ] ?? anindya1234531-Jan-05 1:04 anindya12345 31-Jan-05 1:04
 char * to LPTSTR?? jerrelh16-Dec-04 0:49 jerrelh 16-Dec-04 0:49
 Re: char * to LPTSTR?? Mircea Puiu16-Dec-04 1:14 Mircea Puiu 16-Dec-04 1:14
 Re: char * to LPTSTR?? l00p1n62-Nov-05 13:32 l00p1n6 2-Nov-05 13:32
 char pointer to CString OsoPolar7-Dec-04 9:10 OsoPolar 7-Dec-04 9:10
 Re: char pointer to CString OsoPolar7-Dec-04 9:16 OsoPolar 7-Dec-04 9:16
 Re: char pointer to CString vmihalj8-Sep-05 1:13 vmihalj 8-Sep-05 1:13
 Last Visit: 31-Dec-99 19:00     Last Update: 23-Jan-17 8:28 Refresh 123 Next »

General    News    Suggestion    Question    Bug    Answer    Joke    Praise    Rant    Admin

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.