UNIX/LINUX,Linux生成ascii文件,linux下ASCII轉HEX的實現

 2023-12-06 阅读 27 评论 0

摘要:在項目開發過程有時需要對一串數字的16進制文本轉換成16進制數組,這是實現方法:#include #include #include UNIX/LINUX,#include /*isspace,toupper的頭文件*/#include /*uint8_t的頭文件*//*去除數組中的空格*/char *trim(char *str){linux生成指定大

在項目開發過程有時需要對一串數字的16進制文本轉換成16進制數組,這是實現方法:

#include

#include

#include

UNIX/LINUX,#include /*isspace,toupper的頭文件*/

#include /*uint8_t的頭文件*/

/*去除數組中的空格*/

char *trim(char *str)

{

linux生成指定大小的文件。if(str == NULL || *str == '\0')

return NULL;

int len = strlen(str);

char *p = str;

while(*p != '\0'){

ascii碼轉換成字符串,while(isspace(*p)){

memmove(p,p+1,strlen(p+1)+1);

}

p++;

}

linux創建文本文檔的命令,return str;

}

/*ascii 轉16進制數組,失敗返回-1,成功返回0*/

int ascii2hex(const char *string,int length,uint8_t hex[],int *hexlen)

{

python將ascii轉化為字符、char src_arr[length+2];/*奇數個字符首位補‘0’,字符串結束符'\0',所以是+2*/

int src_len=0,i;

char ah,al;

uint8_t ih,il;

if(string == NULL || hex == NULL || length <1 || hexlen == NULL){

oracle ascii函數,return -1;

}

memset(src_arr,0x00,sizeof(src_arr));

memcpy(src_arr,string,length);

if(trim(src_arr) == NULL)

ascii轉unicode,return -1;

src_len = strlen(src_arr);

if(src_len%2){

*hexlen = src_len/2 + 1;

memmove(&src_arr[1],&src_arr[0],src_len);

src_arr[0] = '0';

}else{

*hexlen = src_len/2;

}

for(i = 0;i < *hexlen;i++){

ah = src_arr[2*i];

al = src_arr[2*i+1];

ih = (ah > '9') ? (toupper(ah) - 'A' + 10):(ah - '0');

il = (al > '9') ? (toupper(al) - 'A' + 10):(al - '0');

hex[i] = ih * 16 + il;

}

return 0;

}

/*16進制轉ascii ,失敗返回-1,成功返回0*/

int hex2ascii(uint8_t *src, char dest[], int len)

{

uint8_t dh,dl; //字符串的高位和低位

int i;

if(src == NULL || dest == NULL || len < 1){

return -1;

}

for(i = 0; i < len; i++){

dh = src[i] / 16;

dh = (dh > 9) ? (dh-10+'A'):(dh + '0');

dl = src[i] % 16;

dl = (dl > 9) ? (dl-10+'A'):(dl + '0');

dest[2*i] = dh;

dest[2*i+1] = dl;

}

dest[2*i] = '\0';

return 0;

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/188421.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息