12,245,287 members (45,885 online)
Add your own
alternative version

366.7K views
141 bookmarked
Posted

# 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

## Comments and Discussions

 View All Threads First Prev Next
 UTF-8 to ASCII string prashu1002-Jul-10 22:42 prashu100 2-Jul-10 22:42
 Last Visit: 31-Dec-99 19:00     Last Update: 1-May-16 21:34 Refresh 1

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.

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