字节、十六进制字符串相互转换(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 ...
随机推荐
- XamlReader动态使用xaml
xamlload先在xaml做出一个grid,命名xgrid <Page x:Class="xamlload.MainPage" xmlns="http://sch ...
- Vector容器构造函数
No1 vector(); No2 vector( const vector& c ); No3 explicit vector( size_type num, const TYPE& ...
- java传值与传引用总结
基本数据类型 我们先来看一个代码 public class ParamTest { public static void main(String[] arge) { double percent = ...
- module、export、require、import的使用
module 每个文件就是一个模块.文件内定义的变量.函数等等都是在自己的作用域内,都是自身所私有的,对其它文件不可见. 每个文件内部都有一个module对象,它包含以下属性 id: 模块的识别符,通 ...
- CNCC2017梳理
大牛云集的中国计算机大会:大会日程表:http://cncc.ccf.org.cn/cn/news/schedule_empty 早上的论坛可以在爱奇艺下载视频 下午的分论坛是多个同时进行的,我也只去 ...
- 一个fork短码的扩展版本
原本代码: 链接 int skip = !!fork() + 2*(!!fork()); for (uint32_t i=skip;i!=INT_MAX;i+=4) { } 这个是多进程加速循环的代码 ...
- 读书笔记-你不知道的JS上-混入与原型
继承 mixin混合继承 function mixin(obj1, obj2) { for (var key in obj2) { //重复不复制 if (!(key in obj1)) { obj1 ...
- Android的主线程和子线程
在一个Android 程序开始运行的时候,会单独启动一个Process.默认的情况下,所有这个程序中的Activity或者Service(Service和 Activity只是Android提供的Co ...
- C++ stl 运用(深层)
1.multiset(set差不多) (1)erase删除,删除指针和键值是不同的. 键值的话是删除所有,指针的话是那个位置的值. (2)统计单个键值个数. (3)对于q.begin(),q.end( ...
- Leetcode题解(33)
113. Path Sum II 题目 分析: 主要考察二叉树深度优先遍历(DFS),递归调用当前节点的左右结点即可,代码如下(copy网上): /** * Definition for binary ...