700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言把十六进制数据转换为字符串

C语言把十六进制数据转换为字符串

时间:2021-01-29 16:56:24

相关推荐

C语言把十六进制数据转换为字符串

创作人QQ:851301776,邮箱:lfr890207@

欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!

个人座右铭:

1.没有横空出世,只要厚积一定发。

2.你可以学历不高,你可以不上学,但你不能不学习

一、将数组中的十六进制数转换为字符串

1.概述

比如我们收到一包数据,数据为十六进制数(0xA1,0xB1,0xC1,0xD1),结果是:将此十六进制数据转换为字符串“A1B2C1D1”。用途:写日志或者其他特殊用法。

2.掩码

void hex_to_asciistring(u8* str,u32 size,u8* str1){u8 deposit [2];u16 i=0;u8 j = 0;for(i=0;i<size;i++){deposit[1] = str[i] & 0x0F;deposit[0] = (str[i] &0xF0) >> 4;for(j = 0; j < 2; j++){switch(deposit[j]){case 0x00:str1[i*2+j]='0';break;case 0x01:str1[i*2+j]='1';break;case 0x02:str1[i*2+j]='2';break;case 0x03:str1[i*2+j]='3';break;case 0x04:str1[i*2+j]='4';break;case 0x05:str1[i*2+j]='5';break;case 0x06:str1[i*2+j]='6';break;case 0x07:str1[i*2+j]='7';break;case 0x08:str1[i*2+j]='8';break;case 0x09:str1[i*2+j]='9';break;case 0x0A:str1[i*2+j]='A';break;case 0x0B:str1[i*2+j]='B';break;case 0x0C:str1[i*2+j]='C';break;case 0x0D:str1[i*2+j]='D';break;case 0x0E:str1[i*2+j]='E';break;case 0x0F:str1[i*2+j]='F';break;default:return ;}}}return ;}

备注:此方法已经过验证,可直接使用

二、将某一个十六进制整数转换为字符串

1.概述

作用:将一个整数0xA1B2,转换为字符串“A1B2”

2.掩码

int hex2str(unsigned int data, char* s, int len){int i;s[len] = 0;for (i = len - 1; i >= 0; i--, data >>= 4){if ((data & 0xf) <= 9)s[i] = (data & 0xf) + '0';elses[i] = (data & 0xf) + 'A' - 0x0a;}return 1;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。