⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 strtodata.cpp

📁 函数 long StrToData(CString strData,int jz) 功能:字符串转为正整数值 [字符串可为2-16]任意进制数值字符串 返回:长整型数值 参数:strData
💻 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 + -