将16进制数据输出到控制台textout错误的---

// 将16进制数据输出到控制台
void textout(char * name, unsigned char * p, unsigned short len)
{
	char * pp;
	unsigned short i;
	pp = (char*) malloc(1024);
	for (i = 0; i<1024; i++)pp[i] = 0;
	//	len=strlen(p);
	for (i = 0; i<len; i++)
		sprintf(pp + i * 2, "%02x", p[i]);
	sprintf(pp + i * 2, "\n\r");
	printf("%s",name);

	free(pp);
}
unsigned char toByte(char c)
{
	unsigned char value = 0;

	if (c >= '0' && c <= '9')
		value = c - '0';
	else if (c >= 'A' && c <= 'Z')
		value = c - 'A' + 10;
	else if (c >= 'a' && c <= 'z')
		value = c - 'a' + 10;

	return value;
}

void hexStringToByte(unsigned char *dstByte, const char *srcHexString, int len)
{
	int index;

	for (int i = 0; i < len; i++){
		index = i * 2;
		dstByte[i] = ((toByte(srcHexString[index])) << 4) | toByte(srcHexString[index + 1]);
	}
}
int main()
{
	char tmp[10];
	unsigned char t_buf[1024];				// 发送报文缓冲区
	hexStringToByte(t_buf, "abcd1234", 8);
	textout(tmp, t_buf, 8);
	system("PAUSE");
	return 0;


}

  

上一篇:字节对齐讲解


下一篇:ラブ・ストーリーは突然に(突然發生的愛情故事)歌詞