接着上次写的一个字符转换。这次是互转,更便于理解。

1.CharToHex()

//功能描述:把ASCII字符转换为16进制
将两个ASCII字符转化为单个字节进行显示,即两个字节转化为一个字节。如’E’ 'B’两个字符,转化为0xEB。

void CharToHex(unsigned char *GB, int glen, unsigned char* SB, int* slen)
{ int i;    //遍历输入的字符串int a = 0;   char temp;   //接收字符,用来判断是否为空格,若是则跳过char temp1,temp2;   //接收一个字节的两个字符  例如EB,则temp1='E',temp2 = 'B'*slen = 0;  //输出的16进制字符串长度for(i=0;i<glen;i++){temp = GB[i];if(temp==' ')continue;if(a == 0)temp1 = GB[i];if(a == 1)temp2 = GB[i];a++;if(a==2){//第一个字符转换if((temp1>=0x30)&&(temp1<=0x39))  temp1 -= 0x30; else if((temp1>=0x41)&&(temp1<=0x46))//大写字母 temp1 -= 0x37; else if((temp1>=0x61)&&(temp1<=0x66))//小写字母 temp1 -= 0x57; else temp1 = 0xff; //第二个字符转换if((temp2>=0x30)&&(temp2<=0x39))  temp2 -= 0x30; else if((temp2>=0x41)&&(temp2<=0x46))//大写字母 temp2 -= 0x37; else if((temp2>=0x61)&&(temp2<=0x66))//小写字母 temp2 -= 0x57; else temp2 = 0xff; SB[*slen] = temp1*16+temp2;  //转成16进制字节数据(*slen)++;}}
}

2.HexToChar()

//功能描述:把16进制转换为ASCII字符
将单个字节转化为两个ASCII字符进行显示,即一个字节转化为两个字节。如0xEB,转化为’E’ 'B’两个字符。

void  HexToChar(unsigned char *bHex,unsigned char *bchar,int* slen)
{*slen = 0;  //输出的字符串长度int blen=0;int v=0;int m=0;blen=strlen(*bHex);for(int i=0;i<blen:i++){v = (bHex[i]) / 16;  //高位m = (bHex[i]) % 16;  //低位// 高位转charif((v>=0)&&(v<=9)) v += 0x30; else if((v>=10)&&(v<=15))//大写字母 v += 0x37; else v = 0xff; bchar[*slen] = (unsigned char)v;//ASCII转char类型v;(*slen)++;   // 低位转charif((m>=0)&&(m<=9)) m += 0x30; else if((m>=10)&&(m<=15))//大写字母 m += 0x37; else m = 0xff; bchar[*slen] = (unsigned char) m;//ASCII转char类型m;(*slen)++; }
}

代码没有测试过,只是看了网上的解释,结合自己的理解写的。

附上最全的ASCII码表:

ASCII字符和16进制字节数据互转相关推荐

  1. 串口编程 - ascii字符与16进制的相互转换

    串口编程 - ascii字符与16进制的相互转换 如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 文章目录 串口编程 - ascii字 ...

  2. C语言输出字符,字符串的ASCII码的16进制数

    C语言输出字符,字符串的ASCII码的16进制数 /* file name : test.c cmd code : gcc -o test.exe test.c */ #include<stdi ...

  3. linux ascii与字符相互转换,ascii 字符串和16进制相互转换

    python 实现的 ascii 字符串和16进制相互转换,备忘一下.有时候转换个IP地址会用到. ''' _ooOoo_ o8888888o 88" . "88 (| -_- | ...

  4. QT 字符转16进制字符串

    串口工具有一个功能是把字符转换成16进制字符 例如字符'6'的ASCII 码是54换成16进制是36 字符转16进制字符串 QString AngelaTest::charToHexStr(char ...

  5. ASCII码转16进制 十六进制转ASCII码

    ASCII码转16进制 十六进制转ASCII码 //ASCII码转16进制 function strToHexCharCode(str) { if (str === "") { r ...

  6. 字符串转16进制字节数组,字节数组转16进制字符串

    /// <summary>/// 字符串转16进制字节数组/// </summary>/// <param name="hexString">& ...

  7. python3 Unicode字符与16进制编码互转(单个字符)

    def pad(text):while len(text) % 4 != 0:text = '0'+textreturn textdef Unicode2HexChar(Unicde_Char):#U ...

  8. QT 实现16进制与字符串互转

    QT 实现16进制与字符串互转 文章目录 QT 实现16进制与字符串互转 前言 一.字符串QString转换16进制 二.16进制转换为字符串QString 三.正则表达式限制输入16进制 四.文本自 ...

  9. Java 字符串,byte[],16进制的字符串互转

    Java 字符串,byte[],16进制的字符串互转 /** * 字符串转换成十六进制字符串 */ public static String str2HexStr(String str) { char ...

最新文章

  1. linux的shell的功能,linux shell中${ }的一些特异功能
  2. 基于Pytorch再次解析AlexNet现代卷积神经网络
  3. 信息系统项目管理师优秀论文:项目整体管理
  4. 1034 有理数四则运算 (20 分)(c语言)(测试点三)
  5. vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...
  6. 什么方式可以通过影子系统传播恶意代码_将恶意代码隐藏在图像中:揭秘恶意软件使用的隐写术...
  7. verilog 生成块_如何高效的编写Verilog——终极版
  8. Javascript实现页面跳转传值示例Demo
  9. 富士施乐3065扫描教程_富士施乐怎么设置扫描到PC
  10. 一个小型的汇编编译器
  11. android横竖屏切换布局闪退,D10上旋转屏幕闪退怎么回事
  12. 等值线/面生成一站式封装
  13. 学生版计算机隐藏游戏,玩了近15年的QQ,才发现这3个隐藏功能,学生党看完炸锅了!...
  14. OSChina 周一乱弹 —— 鱼生不值得
  15. 12位中年程序员:代码一敲十年,收入虽高前途摇摆
  16. gif怎么做成html,gif动态图片制作方法 附带电脑版和手机版制作gif动图教程
  17. access 和SQL有什么不同
  18. arm开发板与windows下的pjsip建立通话
  19. 什么是C++ __builtin_popcount()函数
  20. 斐波那契堆(不太详尽)

热门文章

  1. mysql什么类型允许负数_SQL数据库中那个类型可以存储负数,比如说存储-50? 如果不能存储。用什么方法存储?...
  2. 销售额高达2.8亿的 “像素猫头鹰”项目Moonbirds,何以令NFT收藏家趋之若鹜?
  3. 微信公众号开发获取openID以及用户详细信息,超详细步骤,亲测开发
  4. OKHTTP系列(九)---http请求头(header)作用
  5. App自动化界面操作_按键模拟(模拟键盘信号)、driver.keyevent(keycode)
  6. 【数学】高昆轮高数下强化
  7. 读《Oracle 数据库应用与实践》
  8. 大恒相机Python版Qt界面(二)
  9. IEC60958和IEC61937
  10. TB6612FNG电机驱动模块的简单使用