//==================================================================
/**
功能: 将16进制数组转换成asc字符数组(短转长)
@param[in] hex :要转换的十六进制数组
@param[in] lenth :转换后的16进制数组的长度
@param[out] asc :转换后的asc字符数组(至少分配2倍的hex的大小)
@par修改记录:
2015.01.15 马兆瑞 修改asc不为空时出现的bug
**/
//==================================================================
void hex2asc(unsigned char *hex, int hexlength, unsigned char *asc)
{
for(int i = ; i < hexlength; i++)
{
sprintf((char*)asc+*i, "%02X", hex[i]);
}
} //==================================================================
/**
功能: 将asc字符数组转换成16进制数组(长转短),长度不足则末尾自动补F
@param[in] asc :要转换的asc字符数组
@param[in] lenth :转换后的16进制数组的长度
@param[out] hex :转换后的16进制数组
@par修改记录:
2015.12.22 马兆瑞
**/
//==================================================================
void asc2hex(unsigned char *asc, int hexlength, unsigned char *hex)
{
if(strlen((char*)asc) < hexlength*)
{
char *asc_temp = new char[hexlength*+];
memset(asc_temp, 'F', hexlength*+);
memcpy(asc_temp, asc, strlen((char*)asc));
for(int i = ; i < hexlength; i++)
{
char temp[] = {asc_temp[i*], asc_temp[i*+]};
hex[i] = strtol(temp, , );
}
delete []asc_temp;
}
else
{
for(int i = ; i < hexlength; i++)
{
char temp[] = {asc[i*], asc[i*+]};
hex[i] = strtol(temp, , );
}
}
}
void main()
{
unsigned char asc[] = "915600000221010021010A68", hex[100] = {0}; asc2hex(asc, strlen((const char *)asc)/2 , hex); unsigned char ascr[512] = {0};
hex2asc(hex, strlen((const char *)asc)/2 , ascr);
}
 

字节、十六进制字符串相互转换(asc2hex、hex2asc)的更多相关文章

  1. 二进制值和十六进制字符串相互转换的C++代码

    #include <iostream> #include <string> #include <stdint.h> using namespace std; str ...

  2. java byte[]与十六进制字符串相互转换

    http://blog.csdn.net/worm0527/article/details/69939307 http://blog.csdn.net/androiddeveloper_lee/art ...

  3. python 将字节字符串转换成十六进制字符串

    想将一个十六进制字符串解码成一个字节字符串或者将一个字节字符串编码成一个十六进制字符串 1)只是简单的解码或编码一个十六进制的原始字符串,可以使用 binascii模块 >>> s ...

  4. python 字节数组和十六进制字符串互转

    . 字节数组 --> 十六进制字符串 >>> a = 'ab' >>> a.encode('hex') ' . 十六进制字符串 --> 字节数组 > ...

  5. 十六进制字符串转化为byte数组

    工作上有这样的需求之前找了好多都不行,好不容易有个可以的赶紧留下来. 原址:http://blog.163.com/roadwalker@126/blog/static/113561841201013 ...

  6. delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)

    重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...

  7. delphi 浮点数转换成十六进制字符串的方法

    我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法.       先 ...

  8. Java byte和hex十六进制字符串转换

    在Java中字符串由字符char组成, 一个char由两个byte组成, 而一个byte由八个bit组成, 一个十六进制字符(0-F)实际上由4个字节byte即可表达, 因此, 从字节数组到十六进制字 ...

  9. 字符串、bute[]数组和十六进制字符串的相互转换

    1.字符串转换成十六进制字符串 public static String str2HexStr(String str) { if (EncodingUtil.isEmpty(str)) { retur ...

随机推荐

  1. eclipse环境下,java操作MySQL的简单演示

    首先先通过power shell 进入MySQL 查看现在数据库的状态(博主是win10系统) 右键开始,选择Windows powershell ,输入MySQL -u用户名 -p密码 选择数据库( ...

  2. Fedora 下 Google-Chrome 经常出现僵尸进程的权宜办法

    对于Chrome_ProcessL 和Chrome_FileThre这两僵尸进程,估计遇到过的人都对其各种无奈吧,放任不管吧,越来越多,然后卡死,只能另开个X环境或者在其他的TTY里干掉他俩再切回去, ...

  3. js页面间通信方法(storage事件)(浏览器页面间通信方法)

    在写页面的时候有时会遇到这样的需求,需要两个页面之间传递数据或者一个事件.这个时候,就需要用到我今天所要讲的storage事件,学习这个事件之前,需要先了解localStorage的用法.具体用法可以 ...

  4. Loadrunner Http接口Get/Post方法性能测试脚本解析

    最近使用LoadRunner 11进行了一次完整的Http WEB接口性能测试,下面介绍下Http接口Get/Post方法性能测试脚本通用编写方法. 1. Http接口性能测试基本流程 首先定义了一个 ...

  5. LeetCode 581. Shortest Unsorted Continuous Subarray (最短无序连续子数组)

    Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...

  6. spark-shell启动报错:Yarn application has already ended! It might have been killed or unable to launch application master

    spark-shell不支持yarn cluster,以yarn client方式启动 spark-shell --master=yarn --deploy-mode=client 启动日志,错误信息 ...

  7. MAC 下虚拟主机的配置

    第一部分:httpd.conf 1:找到这段,改成如下这样 <Directory /> Options Indexes FollowSymLinks AllowOverride All O ...

  8. POJ1222EXTENDED LIGHTS OUT(高斯消元)

    EXTENDED LIGHTS OUT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11815   Accepted: 7 ...

  9. HDU 6121 Build a tree(找规律+模拟)

    Build a tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)To ...

  10. 计蒜之道 初赛第一场B 阿里天池的新任务(简单)

    阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次. 首先,定义一个序列 ww: \displ ...