进制转换
2007-06-01 19:20
183 查看
//2进制转化为10进制
CString CTHVZZtest24Dlg::BinToDec(CString strBin)
{
CString strDec;
long nDec = 0, nLen;
int i, j, k;
nLen = strBin.GetLength();
for (i=0; i<nLen; i++)
{
if ( strBin[nLen-i-1] == '0' )
continue;
else
{
k = 1;
for(j=0; j<i; j++)
k = k * 2;
nDec += k;
}
}
strDec.Format("%ld", nDec);
return strDec;
}
//调用DecToHex,把2进制转化为10进制,再转化为16进制
CString CTHVZZtest24Dlg::BinToHex(CString strBin)
{
CString strDec,strHex;
strDec = BinToDec(strBin);
int nDec;
nDec = atol(strDec);
strHex.Format(_T("%02x"), nDec);
/*char hex[2];
sprintf(hex,"%02x",nDec);
strHex = hex;*/
return strHex;
}
//把16进制数转化为2进制
CString CTHVZZtest24Dlg::HexToBin(BYTE temp)
{
CString strDec, strBin;
char strHex[2];
//strHex = temp;
itoa(temp,strHex,16);
//16进制转化为10进制
DWORD dwHex = strtoul(strHex, NULL, 16);
strDec.Format(_T("%ld"), dwHex);
strBin = DecToBin(strDec);
//strBin[0]存放最高位
return strBin;
}
//把10进制数转化为2进制数
CString CTHVZZtest24Dlg::DecToBin(CString strDec)
{
int nDec = atoi(strDec);
int nYushu, nShang;
CString strBin = _T(""), strTemp;
TCHAR buf[2];
BOOL bContinue = TRUE;
while ( bContinue )
{
nYushu = nDec % 2;
nShang = nDec / 2;
sprintf(buf, "%d", nYushu);
strTemp = strBin;
strBin.Format("%s%s", buf, strTemp);
nDec = nShang;
if ( nShang == 0 )
bContinue = FALSE;
}
strTemp.Format(_T("%08s"),strBin);
strBin = strTemp;
return strBin;
}
CString CTHVZZtest24Dlg::BinToDec(CString strBin)
{
CString strDec;
long nDec = 0, nLen;
int i, j, k;
nLen = strBin.GetLength();
for (i=0; i<nLen; i++)
{
if ( strBin[nLen-i-1] == '0' )
continue;
else
{
k = 1;
for(j=0; j<i; j++)
k = k * 2;
nDec += k;
}
}
strDec.Format("%ld", nDec);
return strDec;
}
//调用DecToHex,把2进制转化为10进制,再转化为16进制
CString CTHVZZtest24Dlg::BinToHex(CString strBin)
{
CString strDec,strHex;
strDec = BinToDec(strBin);
int nDec;
nDec = atol(strDec);
strHex.Format(_T("%02x"), nDec);
/*char hex[2];
sprintf(hex,"%02x",nDec);
strHex = hex;*/
return strHex;
}
//把16进制数转化为2进制
CString CTHVZZtest24Dlg::HexToBin(BYTE temp)
{
CString strDec, strBin;
char strHex[2];
//strHex = temp;
itoa(temp,strHex,16);
//16进制转化为10进制
DWORD dwHex = strtoul(strHex, NULL, 16);
strDec.Format(_T("%ld"), dwHex);
strBin = DecToBin(strDec);
//strBin[0]存放最高位
return strBin;
}
//把10进制数转化为2进制数
CString CTHVZZtest24Dlg::DecToBin(CString strDec)
{
int nDec = atoi(strDec);
int nYushu, nShang;
CString strBin = _T(""), strTemp;
TCHAR buf[2];
BOOL bContinue = TRUE;
while ( bContinue )
{
nYushu = nDec % 2;
nShang = nDec / 2;
sprintf(buf, "%d", nYushu);
strTemp = strBin;
strBin.Format("%s%s", buf, strTemp);
nDec = nShang;
if ( nShang == 0 )
bContinue = FALSE;
}
strTemp.Format(_T("%08s"),strBin);
strBin = strTemp;
return strBin;
}
相关文章推荐
- SDUT-数据结构实验之栈一:进制转换
- 2 进制转换 | 二进制、八进制、十进制、十六进制整型常量之间的相互转换
- NOJ 1012 进制转换(十进制转换成随意进制)
- 进制转换
- 九度1138:进制转换(大数除余)
- 660. Remove 9(一种难理解的进制转换)
- 算法提高 ADV-117 进制转换
- Java实现任意进制转换
- 进制转换(char和string转换int)
- 求int型正整数在内存中存储时1的个数(进制转换与读取二进制每一位)
- 计蒜客-进制转换
- 洛谷【P2084】进制转换
- 数据结构实验之栈与队列一:进制转换
- 蓝桥杯 算法提高 进制转换
- 进制转换
- 数据结构实验之栈与队列一:进制转换
- 栈的应用--进制转换
- 2131-数据结构实验之栈与队列一:进制转换
- 数据结构——进制转换
- 进制转换