介绍三种将二进制字节字符转换为ASCII方法
转载地址:https://blog.csdn.net/rabbit729/article/details/3937528
下面代码分别给出了三种将二进制字节字符转换为ASCII的方法
/*
* @brief 该函数实现了将二进制字节数据转换为可打印ASCII码字符串
* @param[in] pSrc 源数据指针
* @param[in] nSrcLength 源数据长度
* @param[out] pDst 目标字符串指针
* @return 目标字符串长度
*/#include <assert.h>
#include <iostream>
using namespace std;int BinaryBytes2String1(const unsigned char *pSrc, unsigned int nSrcLength, char *pDst)
{if(pSrc == 0 || pDst == 0)return 0;char *p = pDst;for (unsigned i=0; i<nSrcLength; i++) {*p = (pSrc[i] >> 4) & 0x0f;*p += *p < 10 ? 0x30 : (0x61 - 10);p++;*p = pSrc[i] & 0x0f;*p += *p < 10 ? 0x30 : (0x61 - 10);p++;*p = pSrc[i] & 0x0f;*p += *p < 10 ? 0x30 : (0x61 - 10);p++;}*p = '/0';return nSrcLength * 2;
}int BinaryBytes2String2(const unsigned char *pSrc, unsigned int nSrcLength, char *pDst)
{if (pSrc == 0 || pDst == 0)return 0;const char tab[] = "0123456789abcdef";for (int i=0; i<nSrcLength; i++) {*pDst++ = tab[*pSrc >> 4];*pDst++ = tab[*pSrc & 0x0f];pSrc++;}*pDst = '/0';return nSrcLength * 2;
}int BinaryBytes2String3(const unsigned char *pSrc, int nSrcLength, char *pDst)
{if (pSrc == 0 || pDst == 0)return 0;for (int i=0; i<nSrcLength; i++) {sprintf(pDst, "%02x", *pSrc);pDst++;pDst++;pSrc++;}*pDst = '/0';return nSrcLength * 2;
}void main(void)
{unsigned char test[3] = {0x23, 0xa4, 0xB7};char result[7];memset(result, 0, 7);BinaryBytes2String1(test, 3, result);cout << result << endl;BinaryBytes2String2(test, 3, result);cout << result << endl;BinaryBytes2String3(test, 3, result);cout << result << endl;
}
输出结果为:
23a4b7
23a4b7
23a4b7
介绍三种将二进制字节字符转换为ASCII方法相关推荐
- adb 重命名_Linux操作系统:三种最基本的文件重命名方法
在我们的工作生活中,不管是程序员还是非程序员,我们都会遇到过一个需求,那就是对一堆的文件进行重命名.在Windows下有很多优秀的软件可以帮助我们完成这个需求,而在Linux环境下,我们可以简单敲一些 ...
- 三种快速转换PDF为TXT的方法:简单、高效、免费
如何将PDF转换为TXT文件?在日常生活中,PDF和TXT是常见的文本格式.PDF格式文件具有稳定的布局和易于存储的特点.然而,许多在线下载的电子书通常是以PDF格式提供的,而电子阅读器通常不支持PD ...
- linux进入字符界面的登录密码,三种进入CentOS界面字符方法
三种进入CentOS界面字符方法 在CentOS界面切换问题中,也许很多人习惯进入字符工作方式来进行操作.那么如何切换到字符工作方式呢?下面我们就来介绍3种方法来进入字符工作方式: 在图形环境下开启终 ...
- 云桌面VOI计算存储在服务器端,介绍三种云桌面:VDI、IDV、VOI
介绍三种云桌面:VDI.IDV.VOI 云桌面应场景而变,没有一种云桌面可以适用所有场景.市场上的云桌面一般分为VDI.IDV和VOI三种架构.下面我们就来看下,它们各有哪些优劣,又分别适用哪些场景. ...
- 如何人物抠图?介绍三种人物抠图的方法
如何将照片里的人物从照片里抠出来呢?在广告制作. 社交媒体.商品展示.影视制作等场景下,需要将产品图片与人物图片进行组合,这时就需要将人物从原始图片中抠出来,然后放置到广告背景中.今天来介绍三种方法, ...
- 今天介绍三种ai文章写作软件给你
你有没有听说过机器人写作文?大家往往会觉得人写作文已经很难了,毕竟文章需要清晰的脉络.优美的语句.流畅的行文.让一个小学生写一篇300字的作文尚且都没法在短时间内写出来,更何况是没有人类智慧的机器人! ...
- 介绍几种最常见的加密和解密方法
加密与解密是通信中最常用的数据转换手段,加密的基本过程是应用加密算法与密钥对明文(尚未加密的原文)实施加密,转换成密文发送:解密的基本过程是接收到密文后,应用相应算法与同一密钥对密文解密,转换为明文: ...
- 【信息抽取】介绍一种端到端的关系抽取方法
事物.概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中.为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开. 然而,随着互联 ...
- 在JavaScript中将字符转换为ASCII代码
如何使用JavaScript将字符转换为ASCII码? 例如: 从" \\ n"获得10. #1楼 如果只有一个字符而不是一个字符串,则可以使用: '\n'.charCodeAt( ...
最新文章
- 成功驱动HD4600-Clover引导
- cocos2d-x JS 重力感应监听事件
- (原创)我眼中的设计模式系列之外观模式(二)
- Android 2048游戏开发
- java怎么判断字符串是否为空的几种方法
- 四川行无疆电商讲解拼多多电商产品销量如何清零
- 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表
- php+chmod+r,从今往后,谁再告诉你Linux上chmod -R 777解决权限,果断绝交
- IE6躲躲猫bug -IE6 Peekaboo Bug
- Go 1.19 发行说明(翻译)
- Arduino MEGA2560与蓝牙的通信(玄学)问题
- cpu占用突然到百分百又降下去_CPU占用百分百是怎么回事?
- 教你如何购买笔记本电池
- 刚子扯谈 活着 没那么简单
- TCP协议详解(一) TCP服务的特点和TCP头部结构
- python爬虫苏宁易购店铺商品数据爬取
- 涉密计算机及涉密网络使用自查,网络安全自查报告(2)
- 【空间/通道注意模型:Nest连接:IVIF】
- 无线监控系统在道路交通上的优势
- 深度学习论文翻译解析(五):Siamese Neural Networks for One-shot Image Recognition
热门文章
- 分布式系统理论基础 - 一致性、2PC和3PC
- 【已解决】applicationContext.xml cannot be opened because it does not exist
- 【测试点2分析】:1020 月饼 (25分)(甲级 1070 Mooncake (25 分))
- priority_queue优先队列的用法总结
- Web前端开发笔记——第二章 HTML语言 第九节 框架标签、脚本标签
- android 属性动画伸缩,Android的属性动画(二)加载框圆点旋转收缩放大缩小效果的实现...
- keil c语言表用什么数据类型,面向51单片机的Keil uVision4基本数据类型简介
- 我和女实习生那些不想说的故事
- OBD技术速成——J1850协议解析软件实现
- unity 安卓 后台运行_iOS14多任务界面放出,类似iPad,实现安卓锁定后台的功能?...