Hex和ASCII相互转换函数

原创 2015年11月19日 09:29:22

以下两个函数用于实现十六进制和ASCII码值之间的转换

int Hex2Ascii(char* hex, char* ascii)
{
	int len = strlen(hex), tlen, i, cnt;
	
	for (i = 0, cnt = 0, tlen = 0; i<len; i++)
	{
		char c = toupper(hex[i]);

		if ((c>='0'&& c<='9') || (c>='A'&& c<='F'))
		{
			BYTE t = (c >= 'A') ? c - 'A' + 10 : c - '0';

			if (cnt)
				ascii[tlen++] += t, cnt = 0;
			else
				ascii[tlen] = t << 4, cnt = 1;
		}
	}
	
	return tlen;
}

int Ascii2Hex(char* ascii, char* hex)
{
	int i, len = strlen(ascii);
	char chHex[] = "0123456789ABCDEF";
					
	for (i = 0; i<len; i++)
	{
		hex[i*3]	= chHex[((BYTE)ascii[i]) >> 4];
		hex[i*3 +1]	= chHex[((BYTE)ascii[i]) & 0xf];
		hex[i*3 +2]	= ' ';
	}

	hex[len * 3] = '\0';

	return len * 3;
}
//! 发送数据


Hex与ASCII相互转换函数

char  HexToASCII(unsigned char  data_hex) {  char  ASCII_Data;  ASCII_Data=data_hex & 0x0F;  if...
  • surelion
  • surelion
  • 2012年08月30日 17:08
  • 15160

十六进制与ASCII码的互转(C语言)

十六进制与ASCII码的互转(C语言) //函 数 名:CharToHex()  //功能描述:把ASCII字符转换为16进制  //函数说明:  //调用函数:  //全局变量...
  • zwj695535100
  • zwj695535100
  • 2016年02月29日 14:38
  • 22914

hex码和ascii码的转换

//0x00~0x0F转换为ASCII码 unsigned char hextoa(uchar dat) { if (dat
  • changyourmind
  • changyourmind
  • 2017年01月09日 17:48
  • 931

[MFC]用CString表示的HEX和ASCII之间转换

在写串口程序的时候用到了要用 HEX 和 ASCII 之间的互相转换,这个是很简单,但是我用的是MFC中的 CString 来表示HEX的数字,而且中间要考虑一下HEX数字之间有空格间隔和无空格间隔等...
  • humanking7
  • humanking7
  • 2015年08月30日 22:39
  • 3582

ASCII转换HEX

  • 2013年09月10日 23:22
  • 6KB
  • 下载

串口的Hex/AscII发送与显示

首先,底层的数据传输都是字节流,所以不管选择什么方式,都会被分解为一个一个的字节。 1选择Hex发送就代表你要发送的内容是纯数字,由程序完成String到Int再到Byte的转化。所以你应该保证...
  • wuxinyou1991
  • wuxinyou1991
  • 2016年06月15日 16:56
  • 4785

ascii 转 Hex

  • 2010年01月21日 15:24
  • 135KB
  • 下载

C通用函数:ASCII与十六制字符串互相转换

在用QT做一个串口通讯软件。在接收数据时,一般的串口收发软件的数据窗口都有ASCII显示模式,也可以转换成HEX十六进制模式。这样有利调试。 因此写了两个函数进行转换,其中ASCII转16进制算法...
  • memory_exception
  • memory_exception
  • 2016年09月08日 09:18
  • 5081

《Qt数据类型》--QByteArray,QString,int,hex之间的转化

对于QString和QByteArray,他们都有一个toInt的静态函数,QString::toInt()是根据string的字面值转化为int类型,比如string:"123",转化为int类型就...
  • wingWC
  • wingWC
  • 2017年06月02日 12:31
  • 2305

用C++编写16进制字符数组转ASCII码字符数组的函数

在通信中经常用到二进制和ASCII码互相转换的功能
  • gzliudan
  • gzliudan
  • 2014年04月11日 23:12
  • 2199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hex和ASCII相互转换函数
举报原因:
原因补充:

(最多只允许输入30个字)