Problema de conversión de la calculadora VC
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>
}
}
p>
return strDec;
}
2.decimal --- --gt; 2 decimal
CString DecToBin(CString strDec) p>
{
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;
} p>
int nTemp = strBin.GetLength()4;
switch(nTemp)
{
Ejemplo 1:
strTemp.Format(_T("0s"), strBin);
strBin = strTemp;
romper;
predeterminado: p>
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
.