C语言16进制与ASCII字符相互转换的方法是什么
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,这篇"C语言16进制与ASCII字符相互转换的方法是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我
千家信息网最后更新 2025年02月12日C语言16进制与ASCII字符相互转换的方法是什么
这篇"C语言16进制与ASCII字符相互转换的方法是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C语言16进制与ASCII字符相互转换的方法是什么"文章吧。
1、把获取到的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], "X", hex_buf[i]); } return (uint8_t *)data;}
2、 把获取到的ASCII字符转换成相同字符的16进制,例:get[4]={'a','a','b','b'}; → 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, "x", (int *)&data_buf[i]); str_buf += 2; } memcpy(hex, data_buf, len); return hex;}
3、把获取到的16进制转换成对应的ASCII字符,例:get[4]={'a','a','b','b'}; → 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;}
4、把获取到的ASCII转换成对应的16进制字符,例:get[4] = {0x61,0x61,0x62,0x62}; → 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--9 hex_buf[i] -= 0x30; else if ((hex_buf[i] >= 0x41) && (hex_buf[i] <= 0x46)) //A--Z hex_buf[i] -= 0x37; else if ((hex_buf[i] >= 0x61) && (hex_buf[i] <= 0x66)) //a--z hex_buf[i] -= 0x57; else hex_buf[i] = 0xff; } memcpy(hex, hex_buf, len); return hex;}
以上就是关于"C语言16进制与ASCII字符相互转换的方法是什么"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
字符
进制
内容
方法
语言
相同
数据
文章
知识
篇文章
价值
函数
大部分
就是
更多
步骤
知识点
行业
资讯
资讯频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
原生连接数据库
思科网络技术教学
文明网络安全素养
重庆双桥蔬菜配送软件开发
软件开发售后服务部门岗位
计算机网络技术专升本可以吗
远程诊断的软件开发
考官问软件开发职员你有啥缺点
进销存管理系统软件开发
牛丫互联网科技
ksweb数据库没有登录框
大连爱丽丝软件开发
dell服务器硬盘黄灯亮
怎么在线学习网络技术
计算机网络技术日常
赛季服pvp服务器人多吗
数据库和信息平台培训班
网络安全综合设计
软件开发社招简历模板下载
服务器连接笔记本
网络安全具有一项主要特性
宿州市亿网网络技术有限公司
服务器和电脑网线直连怎么配置
winform数据库操作
网络安全中17类漏洞
数据库的学号属于
暗黑服务器天天炸
如何增强网络安全常识
如何防范服务器安全
计算机数据库管理技术