当前位置:首页 > 单片机学习笔记 > 正文

C语言十六进制与ASCII码互转程序

//函 数 名:CharToHex()
//功能描述:把ASCII字符转换为16进制
//函数说明:
//调用函数:
//全局变量:
//输 入:ASCII字符
//返 回:16进制

unsigned char CharToHex(unsigned char bHex)
{
if((bHex>=0)&&(bHex<=9))
{
bHex += 0x30;
}
else if((bHex>=10)&&(bHex<=15))//Capital
{
bHex += 0x37;
}
else
{
bHex = 0xff;
}
return bHex;
}

//函 数 名:HexToChar()
//功能描述:把16进制转换为ASCII字符
//函数说明: //调用函数:
//全局变量:
//输 入:16进制
//返 回:ASCII字符

unsigned char HexToChar(unsigned char bChar)
{
if((bChar>=0x30)&&(bChar<=0x39))
{
bChar -= 0x30;
}
else if((bChar>=0x41)&&(bChar<=0x46)) // Capital
{
bChar -= 0x37;
}
else if((bChar>=0x61)&&(bChar<=0x66)) //littlecase
{
bChar -= 0x57;
}
else
{
bChar = 0xff;
}
return bChar;
}

为什么要加减0x30,0x37,找一张ascii码表,看一下十六进制与ascii码对应关系就会明白。

上一篇: 下一篇:

报歉!评论已关闭。