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;
}
//! 发送数据


相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Hex与ASCII相互转换函数

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

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

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

ASCII字符形式的数字和HEX形式的数字

ASCII字符形式的数字和HEX形式的数字,经常要互换,下面是个例子。编写子程序,将R1中的2个十六进制数转换为ASCII码后存放在R3和R4中。 ;--------------R1_R3R4:   ...

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

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

chr()函数和ord()函数进行字符串与ASCII码之间的转换

1.chr()函数 该函数用于将ASCII码值转化为字符串。其函数声明如下: string chr (int ascii); 2.ord()函数 该函数用于将字符串转化为ASCII码值。其函数声明如下...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

hex码和ascii码的转换

//0x00~0x0F转换为ASCII码 unsigned char hextoa(uchar dat) { if (dat

C# string ASCII相互转换

C# string ASCII相互转换 字符串转ASCII public static byte[] str2ASCII(String xmlStr) { return Encoding.Defau...

C# Winform 支持Hex与ASCII输入和切换的文本框

最近一直在做一个支持串口,TCP,UDP通讯调试的一体化工具,其中涉及到16进制数据和ASCII码的输入,所以继承了TextBox的基础上,写了这个支持Hex与ASCII输入和切换的文本框。主要实现了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hex和ASCII相互转换函数
举报原因:
原因补充:

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