📄 strtodata.cpp
字号:
//////////////////////////////////////////////////////////////////////////
// 函数: StrToData
// 日期: 2003-06-22日
// 作者: 孙海峰
// Email:shf11111@163.com
// QQ: 58408454
//////////////////////////////////////////////////////////////////////////
#include "StdAfx.h"
#include "StrToData.h"
long npf(int d,int n)
{
int i;
long m=1;
for(i=0;i<n;i++)
m*=d;
return m;
}
BOOL isRightData(char c,int jz)
{
if((jz<2)||(jz>16))
return FALSE;
char ch[]="00112233445566778899aAbBcCdDeEfF";
int i=0;
for(i=0;i<jz;i++)
{
if(c==ch[i*2])return TRUE;
if(c==ch[i*2+1])return TRUE;
}
return FALSE;
}
long StrToData(CString strData,int jz)
{
int l=strData.GetLength();
long IntValue=0;
int bitValue;
int i;
for(i=0;i<l;i++)
{
if(isRightData(strData[i],jz))
{
if(isdigit(strData[i]))
bitValue=strData[i]-0x30;
else
{
switch(strData[i])
{
case 'a':
bitValue=0x0a;
break;
case 'b':
bitValue=0x0b;
break;
case 'c':
bitValue=0x0c;
break;
case 'd':
bitValue=0x0d;
break;
case 'e':
bitValue=0x0e;
break;
case 'f':
bitValue=0x0f;
break;
case 'A':
bitValue=0x0a;
break;
case 'B':
bitValue=0x0b;
break;
case 'C':
bitValue=0x0c;
break;
case 'D':
bitValue=0x0d;
break;
case 'E':
bitValue=0x0e;
break;
case 'F':
bitValue=0x0f;
break;
}
}
IntValue=bitValue*npf(jz,l-i-1)+IntValue;
}
else
return -1;
}
return IntValue;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -