帮我看看我的“实现VC中的十六进制字符转十进制数字”有啥问题没?
ULONG ConvertHexToDecW(WCHAR* szHex, BYTE nHexLen)
{
WCHAR c = 0;
BYTE nMagnitude = 0;
ULONG MagnitudeArray[] = {1, 16, 256, 4096, 65536, 1048576, 16777216, 268435456};
ULONG nDec = 0;
while ( nHexLen > 0 && nMagnitude<8 )
{
c = szHex[nHexLen-1];
if ( c>=L'0' && c<=L'9' )
{
nDec += (c-L'0')*MagnitudeArray[nMagnitude];
}
else if ( c>=L'A' && c<=L'F' )
{
nDec += (10+c-L'A')*MagnitudeArray[nMagnitude];
}
else if ( c>=L'a' && c<=L'f' )
{
nDec += (10+c-L'a')*MagnitudeArray[nMagnitude];
}
--nHexLen;
++nMagnitude;
}
return nDec;
}
ULONG ConvertHexToDecA(CHAR* szHex, BYTE nHexLen)
{
CHAR c = 0;
BYTE nMagnitude = 0;
ULONG MagnitudeArray[] = {1, 16, 256, 4096, 65536, 1048576, 16777216, 268435456};
ULONG nDec = 0;
while ( nHexLen > 0 && nMagnitude<8 )
{
c = szHex[nHexLen-1];
if ( c>='0' && c<='9' )
{
nDec += (c-'0')*MagnitudeArray[nMagnitude];
}
else if ( c>='A' && c<='F' )
{
nDec += (10+c-'A')*MagnitudeArray[nMagnitude];
}
else if ( c>='a' && c<='f' )
{
nDec += (10+c-'a')*MagnitudeArray[nMagnitude];
}
--nHexLen;
++nMagnitude;
}
return nDec;
}
#ifdef UNICODE
#define ConvertHexToDec ConvertHexToDecW
#else
#define ConvertHexToDec ConvertHexToDecA
#endif
{
WCHAR c = 0;
BYTE nMagnitude = 0;
ULONG MagnitudeArray[] = {1, 16, 256, 4096, 65536, 1048576, 16777216, 268435456};
ULONG nDec = 0;
while ( nHexLen > 0 && nMagnitude<8 )
{
c = szHex[nHexLen-1];
if ( c>=L'0' && c<=L'9' )
{
nDec += (c-L'0')*MagnitudeArray[nMagnitude];
}
else if ( c>=L'A' && c<=L'F' )
{
nDec += (10+c-L'A')*MagnitudeArray[nMagnitude];
}
else if ( c>=L'a' && c<=L'f' )
{
nDec += (10+c-L'a')*MagnitudeArray[nMagnitude];
}
--nHexLen;
++nMagnitude;
}
return nDec;
}
ULONG ConvertHexToDecA(CHAR* szHex, BYTE nHexLen)
{
CHAR c = 0;
BYTE nMagnitude = 0;
ULONG MagnitudeArray[] = {1, 16, 256, 4096, 65536, 1048576, 16777216, 268435456};
ULONG nDec = 0;
while ( nHexLen > 0 && nMagnitude<8 )
{
c = szHex[nHexLen-1];
if ( c>='0' && c<='9' )
{
nDec += (c-'0')*MagnitudeArray[nMagnitude];
}
else if ( c>='A' && c<='F' )
{
nDec += (10+c-'A')*MagnitudeArray[nMagnitude];
}
else if ( c>='a' && c<='f' )
{
nDec += (10+c-'a')*MagnitudeArray[nMagnitude];
}
--nHexLen;
++nMagnitude;
}
return nDec;
}
#ifdef UNICODE
#define ConvertHexToDec ConvertHexToDecW
#else
#define ConvertHexToDec ConvertHexToDecA
#endif
...全文
相关推荐
C语言实现十进制转十六进制
首先,我们要理解十进制和十六进制的基本概念。十进制是我们日常生活中的计数系统,基于10个数字(0到9)。
十六进制转十进制VC程序
标题"十六进制转十进制VC程序"指出,这是一个使用Visual C++(简称VC)编写的程序,它的功能是将十六进制的数字或字符串转换成等值的十进制形式。
十六进制字符串到浮点数,整型的相互转换源代码(qt+vc2010)
本文将深入探讨十六进制字符串与浮点数、整型之间的转换,并提供在Qt和VC2010环境下实现这些转换的源代码。首先,我们要理解不同进制的概念。
二进制、十进制、十六进制之间数据转换程序
- **十进制转十六进制**:可以先将十进制数转换成二进制,然后再按照二进制转十六进制的方法进行转换。- **十六进制转十进制**:将每个十六进制数字转换成其对应的十进制值,然后将这些值相加。
vc6 std 调用 十六進制 轉化
`std::stringstream`允许我们将数字转换为字符串,而`std::hex`则可以设置流的基数为16,使得输出的数字以十六进制形式表示。**一、十进制转十六进制**1.


