Red de conocimiento informático - Problemas con los teléfonos móviles - Problema de conversión de la calculadora VC

Problema de conversión de la calculadora VC

1. Binario-----gt; decimal

CSString BinToDec(CString strBin)

{

CString strDec;

largo nDec = 0, nLen;

int i, j, k

nLen = strBin.GetLength(); nLen; i )

{

if ( strBin[nLen-i-1] == '0' )

continuar;

else

{

k = 1;

for(j=0; jlt; i; j )

k = k * 2;

nDec = k

}

}

strDec.Format("ld", nDec);

}

}

p>

return strDec;

}

2.decimal --- --gt; 2 decimal

CString DecToBin(CString strDec)

{

int nDec = atoi(strDec); nYushu, nShang;

int nYushu, nShang.nShang;

CString strBin = _T(""),

TCHAR buf[2]; /p>

BOOL bContinue = VERDADERO

mientras ( bContinue )

{

nYushu = nDec 2

nShang = nDec / 2;

sprintf(buf, "d", nYushu

strTemp = strBin

strBin.Format("ss", buf; , strTemp);

nDec = nShang;

if ( nShang == 0 )

bContinue = FALSE;

}

int nTemp = strBin.GetLength()4;

switch(nTemp)

{

Ejemplo 1:

strTemp.Format(_T("0s"), strBin);

strBin = strTemp;

romper;

predeterminado:

romper;

}

retornar strBin;

}

3. hexadecimal

Binario 2 se convierte primero a decimal y luego a hexadecimal

CString strDec, strBin, strHex;

strBin = _T("1110");

strDec = BinToDec(strBin);

p>

int nDec;

nDec = atol(strDec);<

/p>

strHex.Format(_T("1110"))Format(_T("x"), nDec);

4. Hex

int nDec = 10;

CString str;

str./p>

5. gt; 10

CSString strDec, strHex;

strHex = _T("af");

DWORD dwHex = strtoul(strHex, NULL, 16);

strDec.Format(_T("ld"), dwHex);

6. Hexadecimal-----gt; Binario

Primero se convierte el hexadecimal. a decimal y luego a binario

CString strDec, strBin, strHex;

strHex = _T("af");

DWORD dwHex = strtoul(strHex, NULL, 16);

strDec.Format(_T("ld", dwHex));

6.Format(_T("ld "), dwHex);

strBin = DecToBin(strDec);

Lo miré y luego lo cambié yo mismo. Debería funcionar normalmente

.