52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
#include "StdAfx.h"
|
|
#include "BaseProcess.h"
|
|
|
|
CBaseProcess::CBaseProcess(void)
|
|
{
|
|
}
|
|
|
|
CBaseProcess::~CBaseProcess(void)
|
|
{
|
|
}
|
|
|
|
DWORD CBaseProcess::GetHexValue( const char* Value )
|
|
{
|
|
DWORD sum = 0;
|
|
size_t StringCount = strlen(Value);
|
|
|
|
int count = static_cast<int>(StringCount);
|
|
|
|
for (size_t index = 0; index < StringCount ; ++index)
|
|
{
|
|
sum += GetHexConvertor(Value[index]) * GetHexMulti(--count);
|
|
}
|
|
|
|
return sum;
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//16진수를 10진수로 컨버터 하는 부분!
|
|
int CBaseProcess::GetHexMulti( int Value )
|
|
{
|
|
if( Value == 0)
|
|
return 1;
|
|
|
|
if(Value >= 1)
|
|
return 16 * GetHexMulti(Value - 1);
|
|
|
|
return 0;
|
|
}
|
|
|
|
int CBaseProcess::GetHexConvertor( char charset )
|
|
{
|
|
if ('a' <= charset && charset <= 'f') //소문자인가?
|
|
charset = charset - 32; //대문자로 변화
|
|
|
|
if ('A' <= charset && charset <= 'F')
|
|
return charset - 'A' + 10; //대문자면 16진수에 해당되는 값으로 변환.
|
|
|
|
if ('0' <= charset && charset <= '9') //숫자 문자인가?
|
|
return charset - '0'; //숫자로 변환
|
|
|
|
return 0;
|
|
} |