字节、十六进制字符串相互转换(asc2hex、hex2asc)
//==================================================================
/**
功能: 将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)的更多相关文章
- 二进制值和十六进制字符串相互转换的C++代码
#include <iostream> #include <string> #include <stdint.h> using namespace std; str ...
- java byte[]与十六进制字符串相互转换
http://blog.csdn.net/worm0527/article/details/69939307 http://blog.csdn.net/androiddeveloper_lee/art ...
- python 将字节字符串转换成十六进制字符串
想将一个十六进制字符串解码成一个字节字符串或者将一个字节字符串编码成一个十六进制字符串 1)只是简单的解码或编码一个十六进制的原始字符串,可以使用 binascii模块 >>> s ...
- python 字节数组和十六进制字符串互转
. 字节数组 --> 十六进制字符串 >>> a = 'ab' >>> a.encode('hex') ' . 十六进制字符串 --> 字节数组 > ...
- 十六进制字符串转化为byte数组
工作上有这样的需求之前找了好多都不行,好不容易有个可以的赶紧留下来. 原址:http://blog.163.com/roadwalker@126/blog/static/113561841201013 ...
- delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)
重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...
- delphi 浮点数转换成十六进制字符串的方法
我们在研究封包技术时,经常会碰到将浮点数转换成十六进制形式.比如在游戏中人物的座标,经常就用浮点数来表示.怎么将浮点数转换成十六进制字符串形式呢?下面我将写出其在DELPHI中的方法. 先 ...
- Java byte和hex十六进制字符串转换
在Java中字符串由字符char组成, 一个char由两个byte组成, 而一个byte由八个bit组成, 一个十六进制字符(0-F)实际上由4个字节byte即可表达, 因此, 从字节数组到十六进制字 ...
- 字符串、bute[]数组和十六进制字符串的相互转换
1.字符串转换成十六进制字符串 public static String str2HexStr(String str) { if (EncodingUtil.isEmpty(str)) { retur ...
随机推荐
- 1. Apache ZooKeeper快速课程入门
Tips Tips做一个终身学习的人! 日拱一卒,功不唐捐. 在过去的几十年里,互联网改变了我们生活的方式.Internet上提供的服务通常由复杂的软件系统支持,这些系统跨越了大量的服务器,而且常常位 ...
- ASP.NET MVC @Html.Label的问题
在使用@Html.Lable()来显示Model的某一个字符串属性时,如果该字符串中包含".",那么就会在最终呈现时被截掉开头至"."位置的字符.什么原因尚不清 ...
- Linux系统Shell脚本编程
1. shell脚本概念:C语言编写的.命令解释器.编程语言. 是用户使用linux的桥梁. shell脚本语言非常擅长处理文本类型的数据. 2. shell脚本作用:自动化管理.监控管理.日志数据处 ...
- Mybatis通用Mapper
极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschina.net/free/Mapper 优点? 不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表 ...
- 脱壳第三讲,UPX压缩壳,以及补充壳知识
脱壳第三讲,UPX压缩壳,以及补充壳知识 一丶什么是压缩壳.以及壳的原理 在理解什么是压缩壳的时候,我们先了解一下什么是壳 1.什么是壳 壳可以简单理解为就是在自己的PE文件中包含了代码.而有不影响我 ...
- bug:页面交互操作引发的问题
最近在测试一些h5页面,突然悟到一些测试点 需求点: 用户可以在页面领取礼物,领取的礼物在页面底部展示,用户点击礼物可调起分享弹窗,礼物超过一屏可左右滑动, bug的表现形式: 仅当礼物超过一屏时(一 ...
- DNS主从服务部署
(1)节点信息 console01 主DNS 192.168.80.3 192.168.10.3 console02 从DNS 192.168.80.4 192.168.10.4 (2)环境部署 # ...
- linux C 文件操作之fscanf()
描述: int fscanf(FILE *stream, const char *format, ...) 从流 stream 读取格式化输入. 声明: int fscanf(FILE *stream ...
- 0_Simple__cdpSimplePrint + 0_Simple__cdpSimpleQuicksort
CUDA动态并行的简单实践,以及利用CUDA动态并行实现快排算法(有单线程的递归调用) ▶ 源代码:动态并行递归调用线程块 #include <iostream> #include < ...
- 如何成为一个javascript高手【转载】
原文网址: http://www.cnblogs.com/keva/p/how-to-become-a-javascript-badass.html 英文网址:http://www.clientc ...