数据类型转换

来源:互联网 发布:java中destory什么意思 编辑:程序博客网 时间:2024/04/30 06:40
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