广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言16进制与ASCII字符相互转换的方法是什么
  • 766
分享到

C语言16进制与ASCII字符相互转换的方法是什么

2023-06-26 07:06:24 766人浏览 八月长安
摘要

这篇“C语言16进制与ASCII字符相互转换的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言16进制与ASC

这篇“C语言16进制与ASCII字符相互转换的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言16进制与ASCII字符相互转换的方法是什么”文章吧。

把获取到的16进制数据转换成相同字符的ASCII字符,例:get[2] = {0x11,0x22};  →  put[4]={'1','1','2','2'};

数据的转换主要通过sprintf();来完成的,对于该函数网上有许多讲解,想要了解的可以查看一下。

typedef unsigned char uint8_t;char data[64]; uint8_t *hex_to_ascii(uint8_t *str, uint32_t len){    uint8_t *hex_buf = str;    for (int i = 0; i < len; i++)    {        sprintf(&data[i * 2], "%02X", hex_buf[i]);    }    return (uint8_t *)data;}

把获取到的ASCII字符转换成相同字符的16进制,例:get[4]={'a','a','b','b'}; &rarr;  put[2] = {0xaa,0xbb};

ASCII转换成16进制主要通过sscanf();来完成的。

typedef unsigned char uint8_t;char data[64];uint8_t *ascii_to_hex(char *str, uint32_t len){    char *str_buf = str;    uint8_t *hex = (uint8_t *)data;    uint8_t data_buf[len];    for (int i = 0; i < len; i++)    {        sscanf(str_buf, "%02x", (int *)&data_buf[i]);        str_buf += 2;    }    memcpy(hex, data_buf, len);    return hex;}

把获取到的16进制转换成对应的ASCII字符,例:get[4]={'a','a','b','b'}; &rarr; put[4]={0x61,0x61,0x62,0x62};

typedef unsigned char uint8_t;char data[64];uint8_t *Char_to_Hex(char *str,uint32_t len){    char *hex_buf = str;    uint8_t *hex = (uint8_t *)data;    for (int i = 0; i < len; i++)    {        if ((hex_buf[i] >= '0') && (hex_buf[i] <= '9'))        //0x30--0x39            hex_buf[i] += 0x30;        else if ((hex_buf[i] >= 'a') && (hex_buf[i] <= 'z'))   //0x61--0x66            hex_buf[i] += 0x61;        else if ((hex_buf[i] >= 'A') && (hex_buf[i] <= 'Z'))   //0x41--0x46            hex_buf[i] += 0x41;        else            hex_buf[i] += 0xff;    }    memcpy(hex, hex_buf, len);     return hex;}

把获取到的ASCII转换成对应的16进制字符,例:get[4] = {0x61,0x61,0x62,0x62}; &rarr; put[4]={'a','a','b','b'};

typedef unsigned char uint8_t;char data[64];uint8_t *Hex_to_Char(char *str,uint32_t len){    char *hex_buf = str;    uint8_t *hex = (uint8_t *)data;    for (int i = 0; i < len; i++)    {if ((hex_buf[i] >= 0x30) && (hex_buf[i] <= 0x39))      //0--9hex_buf[i] -= 0x30;else if ((hex_buf[i] >= 0x41) && (hex_buf[i] <= 0x46)) //A--Zhex_buf[i] -= 0x37;else if ((hex_buf[i] >= 0x61) && (hex_buf[i] <= 0x66)) //a--zhex_buf[i] -= 0x57;elsehex_buf[i] = 0xff;    }    memcpy(hex, hex_buf, len);     return hex;}

以上就是关于“C语言16进制与ASCII字符相互转换的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。

--结束END--

本文标题: C语言16进制与ASCII字符相互转换的方法是什么

本文链接: https://www.lsjlt.com/news/307370.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言16进制与ASCII字符相互转换
    1、把获取到的16进制数据转换成相同字符的ASCII字符,例:get[2] = {0x11,0x22};  →  put[4]={&...
    99+
    2022-11-13
  • C语言16进制与ASCII字符相互转换的方法是什么
    这篇“C语言16进制与ASCII字符相互转换的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言16进制与ASC...
    99+
    2023-06-26
  • c语言字符转换为ascii的方法是什么
    要将C语言字符转换为ASCII码,可以使用C语言中的内置函数`int` `int(char c)`。该函数将字符作为参数传入,并返回...
    99+
    2023-09-16
    c语言
  • c语言ascii码转换字符的方法是什么
    在C语言中,可以使用`char`数据类型来表示字符,而ASCII码是一个整数值,可以通过将整数值赋给`char`类型变量来实现ASC...
    99+
    2023-09-04
    c语言
  • C语言隐式类型转换与强制类型转换的方法是什么
    本篇内容主要讲解“C语言隐式类型转换与强制类型转换的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言隐式类型转换与强制类型转换的方法是什么”吧!类型转换数据有不同的类型,不同类型数...
    99+
    2023-06-25
  • c语言错误代码转字符串的方法是什么
    在C语言中,可以使用函数 strerror() 将错误代码转换为字符串。这个函数接受一个整数参数,代表错误代码,然后返回一个指向字符...
    99+
    2023-09-13
    c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作