转载地址: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方法相关推荐

  1. adb 重命名_Linux操作系统:三种最基本的文件重命名方法

    在我们的工作生活中,不管是程序员还是非程序员,我们都会遇到过一个需求,那就是对一堆的文件进行重命名.在Windows下有很多优秀的软件可以帮助我们完成这个需求,而在Linux环境下,我们可以简单敲一些 ...

  2. 三种快速转换PDF为TXT的方法:简单、高效、免费

    如何将PDF转换为TXT文件?在日常生活中,PDF和TXT是常见的文本格式.PDF格式文件具有稳定的布局和易于存储的特点.然而,许多在线下载的电子书通常是以PDF格式提供的,而电子阅读器通常不支持PD ...

  3. linux进入字符界面的登录密码,三种进入CentOS界面字符方法

    三种进入CentOS界面字符方法 在CentOS界面切换问题中,也许很多人习惯进入字符工作方式来进行操作.那么如何切换到字符工作方式呢?下面我们就来介绍3种方法来进入字符工作方式: 在图形环境下开启终 ...

  4. 云桌面VOI计算存储在服务器端,介绍三种云桌面:VDI、IDV、VOI

    介绍三种云桌面:VDI.IDV.VOI 云桌面应场景而变,没有一种云桌面可以适用所有场景.市场上的云桌面一般分为VDI.IDV和VOI三种架构.下面我们就来看下,它们各有哪些优劣,又分别适用哪些场景. ...

  5. 如何人物抠图?介绍三种人物抠图的方法

    如何将照片里的人物从照片里抠出来呢?在广告制作. 社交媒体.商品展示.影视制作等场景下,需要将产品图片与人物图片进行组合,这时就需要将人物从原始图片中抠出来,然后放置到广告背景中.今天来介绍三种方法, ...

  6. 今天介绍三种ai文章写作软件给你

    你有没有听说过机器人写作文?大家往往会觉得人写作文已经很难了,毕竟文章需要清晰的脉络.优美的语句.流畅的行文.让一个小学生写一篇300字的作文尚且都没法在短时间内写出来,更何况是没有人类智慧的机器人! ...

  7. 介绍几种最常见的加密和解密方法

    加密与解密是通信中最常用的数据转换手段,加密的基本过程是应用加密算法与密钥对明文(尚未加密的原文)实施加密,转换成密文发送:解密的基本过程是接收到密文后,应用相应算法与同一密钥对密文解密,转换为明文: ...

  8. 【信息抽取】介绍一种端到端的关系抽取方法

    事物.概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中.为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开. 然而,随着互联 ...

  9. 在JavaScript中将字符转换为ASCII代码

    如何使用JavaScript将字符转换为ASCII码? 例如: 从" \\ n"获得10. #1楼 如果只有一个字符而不是一个字符串,则可以使用: '\n'.charCodeAt( ...

最新文章

  1. 成功驱动HD4600-Clover引导
  2. cocos2d-x JS 重力感应监听事件
  3. (原创)我眼中的设计模式系列之外观模式(二)
  4. Android 2048游戏开发
  5. java怎么判断字符串是否为空的几种方法
  6. 四川行无疆电商讲解拼多多电商产品销量如何清零
  7. 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表
  8. php+chmod+r,从今往后,谁再告诉你Linux上chmod -R 777解决权限,果断绝交
  9. IE6躲躲猫bug -IE6 Peekaboo Bug
  10. Go 1.19 发行说明(翻译)
  11. Arduino MEGA2560与蓝牙的通信(玄学)问题
  12. cpu占用突然到百分百又降下去_CPU占用百分百是怎么回事?
  13. 教你如何购买笔记本电池
  14. 刚子扯谈 活着 没那么简单
  15. TCP协议详解(一) TCP服务的特点和TCP头部结构
  16. python爬虫苏宁易购店铺商品数据爬取
  17. 涉密计算机及涉密网络使用自查,网络安全自查报告(2)
  18. 【空间/通道注意模型:Nest连接:IVIF】
  19. 无线监控系统在道路交通上的优势
  20. 深度学习论文翻译解析(五):Siamese Neural Networks for One-shot Image Recognition

热门文章

  1. 分布式系统理论基础 - 一致性、2PC和3PC
  2. 【已解决】applicationContext.xml cannot be opened because it does not exist
  3. 【测试点2分析】:1020 月饼 (25分)(甲级 1070 Mooncake (25 分))
  4. priority_queue优先队列的用法总结
  5. Web前端开发笔记——第二章 HTML语言 第九节 框架标签、脚本标签
  6. android 属性动画伸缩,Android的属性动画(二)加载框圆点旋转收缩放大缩小效果的实现...
  7. keil c语言表用什么数据类型,面向51单片机的Keil uVision4基本数据类型简介
  8. 我和女实习生那些不想说的故事
  9. OBD技术速成——J1850协议解析软件实现
  10. unity 安卓 后台运行_iOS14多任务界面放出,类似iPad,实现安卓锁定后台的功能?...