12,882,806 members (39,722 online)
Add your own
alternative version

#### Stats

376.3K views
141 bookmarked
Posted 28 Jun 2002

# Data Conversions

, 28 Jun 2002
 Rate this:
Please Sign up or sign in to vote.
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.

## License

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

 Pro

## Comments and Discussions

 First PrevNext
 My vote of 5 nand sharma24-Apr-13 22:35 nand sharma 24-Apr-13 22:35
 My vote of 5 lbsx30-Dec-11 20:50 lbsx 30-Dec-11 20:50
 My vote of 5 jhoesche0229-Mar-11 10:32 jhoesche02 29-Mar-11 10:32
 My vote of 5 goldenrose918-Jan-11 4:14 goldenrose9 18-Jan-11 4:14
 UTF-8 to ASCII string prashu1002-Jul-10 21:42 prashu100 2-Jul-10 21:42
 Conversion of BYTE to CString and Viceversa g_satish9-Sep-09 1:02 g_satish 9-Sep-09 1:02
 Double to CString Conversion mazhar_cse12-Aug-08 20:49 mazhar_cse 12-Aug-08 20:49
 Hello, I want to convert a double to CString in Scientific notation; I have 0.0005. I want a string like 5e-4. ```double d = 0.0005; CStringA strTemp; strTemp.Format("%.0e",d);``` I got the output 5e-004 I want to remove 00. How can I do it? Thanks in advance Mazhar
 Very useful Mike Hankey13-Jul-08 12:50 Mike Hankey 13-Jul-08 12:50
 Data Conversion priestnall11-Jul-08 7:55 priestnall 11-Jul-08 7:55
 I would realy apreciate it if someone could reply before this thursday. zedon29-Apr-08 7:29 zedon 29-Apr-08 7:29
 How can i convert the CString(example: chinese font) to UTF8 ? Member 263478330-Dec-07 5:15 Member 2634783 30-Dec-07 5:15
 Conversion of CString to uchar Ramya Suvarna17-Jul-07 17:45 Ramya Suvarna 17-Jul-07 17:45
 thanx sony fernando23-May-07 19:04 sony fernando 23-May-07 19:04
 Thanx smzhaq22-May-07 4:44 smzhaq 22-May-07 4:44
 CString to const WCHAR* smzhaq22-May-07 3:37 smzhaq 22-May-07 3:37
 How to convert a CString to _bstr_t ganesa moorthy10-Apr-07 1:32 ganesa moorthy 10-Apr-07 1:32
 Re: How to convert a CString to _bstr_t J-D20-Apr-07 4:35 J-D 20-Apr-07 4:35
 How to convert CString to wstring? Sunil Jampa2-Jan-07 23:05 Sunil Jampa 2-Jan-07 23:05
 where can i find the sample conversion of WideCharToMultiByte? SKhokalay22-Sep-06 0:50 SKhokalay 22-Sep-06 0:50
 Re: where can i find the sample conversion of WideCharToMultiByte? metmac12-Aug-07 1:17 metmac1 2-Aug-07 1:17
 converting byte array to hex string [modified] ranu_hai26-Jul-06 20:43 ranu_hai 26-Jul-06 20:43
 CString usage / conversion jpl7818-May-06 0:35 jpl78 18-May-06 0:35
 Re: CString usage / conversion metmac12-Aug-07 1:32 metmac1 2-Aug-07 1:32
 Double to CString suggestion l00p1n62-Nov-05 12:50 l00p1n6 2-Nov-05 12:50
 Re: Double to CString suggestion lagsita25-Apr-06 23:19 lagsita 25-Apr-06 23:19
 Last Visit: 31-Dec-99 18:00     Last Update: 23-Apr-17 20:52 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.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170422.1 | Last Updated 29 Jun 2002
Article Copyright 2002 by VGirish
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid