//*********************************************************
//
//
//字符串转化成16进制存入CHAR数组中
// 作者:QQTCC
// 日期:2006.12.7
//
//*********************************************************
#include <iostream>
using namespace std;
bool isNumber(char *p) //字符串位是否数字或字母判断;
{
if(*p>='0'&& *p<='9')
{return true;}
else return false;
}
void convert(char *p,unsigned char str[])
{
int high,low,i=0;
while(*p!='\0')
{
if(isNumber(p))
{high=(*p-48)<<4; } //按ASCII转换成整数并左移4位
else
{high=(*p-55)<<4; } //ASCII转换成整数左移4位
high=high&0xF0; //低4位屏蔽
++p; //读低4位
if(isNumber(p))
{low=*p-48; } //左移4位
else
{low=*p-55; } //左移4位
low=low&0x0F; //高4位屏蔽
str[i++]=low|high;
++p;
}
}
void main()
{
char str[]="1234567890ABCDEF";
unsigned char dest[8];
char *p=str;
convert(p,dest);
for(int j=0;j<8;j++)
{cout<<hex<<dest[j]<<endl;} //结果扩展ASCII,我查表验证过.
}
posted on 2007-10-21 23:44
吴剑 阅读(1685)
评论(1) 编辑 收藏 引用 所属分类:
代码摘抄