📄 asciistrandhexstrtransform.cpp
字号:
/******************************************************************
文件名: ASCIIStrAndHexStrTransForm.cpp
创建人: 刘毕贵
日 期: 2009.05.06
描 述: CASCIIStrAndHexStrTransForm类实现文件
版 本: 1.0
******************************************************************/
#include "ASCIIStrAndHexStrTransForm.h"
using std::string;
/*******************************************************************
函数名: ASCIIToHexChar
作者: 刘毕贵
日期: 2009-05-06
功能: 根据整数获取对应的16进制字符
输入参数:
p_nASCII 整数[0,16)
返回值: 与p_nASCII对应的16进制字符,如果p_nASCII不在[0,16)区间,返回'\0'
说明 : 无
修改记录:无
*******************************************************************/
char CASCIIStrAndHexStrTransForm::ASCIIToHexChar(int p_nASCII) const
{
switch(p_nASCII)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
p_nASCII += '0';
break;
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
p_nASCII = 'A' + (p_nASCII - 10);
break;
default:
return '\0';
}
return p_nASCII;
}
/*******************************************************************
函数名: HexCharToASCII
作者: 刘毕贵
日期: 2009-05-06
功能: 根据16进制字符获取对应的整数
输入参数:
p_chHex 16进制字符[0-9,A-F]
返回值: 与p_chHex 16进制字符对应的10进制数,如果p_chHex不在[0-9,A-F]间,返回'17'
说明 : 无
修改记录:无
*******************************************************************/
int CASCIIStrAndHexStrTransForm::HexCharToASCII(char p_chHex) const
{
switch(p_chHex)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
p_chHex -= '0';
break;
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
p_chHex = p_chHex - 'A' + 10;
break;
default:
return 17;
}
return p_chHex;
}
/*******************************************************************
函数名: GetHexStr
作者: 刘毕贵
日期: 2009-05-06
功能: ASCII串转换为16进制字符串
输入参数:
p_strASCII -- ASCII串
返回值: 与p_strASCII -- ASCII串对应的16进制字符串
说明 : 无
修改记录:无
*******************************************************************/
const string CASCIIStrAndHexStrTransForm::GetHexStr(const string &p_strASCII) const
{
char ch;
string strRet;
for(string::const_iterator cit = p_strASCII.begin(); cit != p_strASCII.end(); ++cit)
{
ch = ((*cit) & 0xF0) >> 4;
strRet += ASCIIToHexChar(ch);
ch = (*cit) & 0x0F;
strRet += ASCIIToHexChar(ch);
}
return strRet;
}
/*******************************************************************
函数名: GetASCIIStr
作者: 刘毕贵
日期: 2009-05-06
功能: 16进制字符串转换为ASCII串
输入参数:
p_strHex -- 16进制字符串
返回值: 与p_strHex -- 16进制字符串对应的ASCII字符串
说明 : 无
修改记录:无
*******************************************************************/
const string CASCIIStrAndHexStrTransForm::GetASCIIStr(const string &p_strHex) const
{
char ch;
string strRet;
for(size_t idx = 0; idx < p_strHex.size(); idx = idx + 2)
{
ch = HexCharToASCII(p_strHex[idx]) << 4;
if( idx + 1 < p_strHex.size())
{
ch = ch | HexCharToASCII(p_strHex[idx + 1]);
}
strRet += ch;
}
return strRet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -