16进制串hex与ASCII字符串相互转换
提供两个函数,方便十六进制串与ASCII 字符串之间的相互转换,使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL 。
char *chstohex ( char* chs )
{
char hex[] = { '', '', '', '', '', '', '', \
'', '','', 'A', 'B', 'C', 'D', 'E', 'F'
}; int len = strlen ( chs );
char* ascii = NULL ;
ascii = (char*)calloc ( len * + , sizeof(char) ); // calloc ascii int i = ;
while( i < len )
{
ascii[i*] = hex[(int)( (char)chs[i] / )] ;
ascii[i* + ] = hex[(int)( (char)chs[i] % )] ;
++i;
} return ascii; // ascii 返回之前未释放
}
// 函数输入16进制字符串,输出对应的字符串
char *hextochs ( char* ascii )
{
int len = strlen ( ascii ) ;
if( len% != )
return NULL ;
char *chs = NULL ;
chs = (char*)calloc( len / + , sizeof(char) ); // calloc chs int i = ;
char ch[] = {};
while( i < len )
{
ch[] = ( (int)ascii[i] > ) ? ( ascii[i]% + ) : ascii[i]% ;
ch[] = ( (int)ascii[i + ] > ) ? ( ascii[i + ]% + ) : ascii[i + ]% ; chs[i/] = (char)( ch[]* + ch[] );
i += ;
} return chs ; // chs 返回前未释放
}
16进制串hex与ASCII字符串相互转换的更多相关文章
- 16进制串与ASCII字符串相互转换
提供两个函数,方便十六进制串与ASCII 字符串之间的相互转换,使用函数需要注意的是返回的串是在堆上通过 calloc 分配的,所以,记得使用完返回值释放该块,并且将指向该块的指针 =NULL .// ...
- 2进制,16进制,BCD,ascii,序列化对象相互转换
public final static char[] BToA = "0123456789abcdef".toCharArray() ; 1.16进制字符串转为字节数组 /** * ...
- C# 进制转换 在什么情况下使用16进制,字节数组,字符串
C# 进制转换 Admin2013年9月18日 名人名言:从工作里爱了生命,就是通彻了生命最深的秘密.——纪伯伦 1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串 //十进制转二进制Con ...
- python经常使用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
进行协议解析时.总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上.直接上样例 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
- python常用的十进制、16进制、字符串、字节串之间的转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 废话不多上,直接上例子 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 ...
- python--常用的十进制、16进制、字符串、字节串之间的转换
进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制 ...
- [转]python常用的十进制、16进制、字符串、字节串之间的转换
阅读目录(Content) 整数之间的进制转换: 字符串转整数: 字节串转整数: 整数转字节串: 字符串转字节串: 字节串转字符串: 测试用的python源码 进行协议解析时,总是会遇到各种各样的数据 ...
- carryLess小笔记001_Java中16进制与字符串之间的相互转换
笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...
- Java中16进制与字符串之间的相互转换
笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题-->字符串转为16进制后再转回来,英文正常,中文出现乱码 经过考虑决定通过以下方式进 ...
随机推荐
- 集合类学习之ArrayList源码解析
1.概述 ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大 ...
- Mysql中使用FIND_IN_SET解决IN条件为字符串时只有第一个数据可用的问题
今天在使用Mysql的存储过程处理数据的批量删除时,遇到了WHERE条件中使用IN(strlist)时(strlist为逗号分隔的字符串),只有strlist的第一个元素才有效的问题,现在将问题和解决 ...
- Handoff使用指南 - 理论篇
Handoff简介 Handoff是iOS 8 和 OS X v10.10中引入的功能,可以让同一个用户在多台设备间传递项目.In iOS 9 and OS X v10.11 支持了Spotlight ...
- html5 拖曳功能的实现[转]
HTML5中实现拖放操作,至少经过如下步骤1)设置被拖放对象元素的draggable属性设置为true2)编写与拖放有关的事件处理代码 事件 产生事件的元素 描述 dragstart 被拖拽物体 开始 ...
- C++ Bitsets
C++ Bitsets给程序员提供一种位集合的数据结构.Bitsets使用许多二元操作符,比如逻辑和,或等. Constructors 创建新bitsets Operators 比较和赋值bitset ...
- wix xslt for adding node
Using xslt to add new node item to wix source code. Original wix code: <Fragment> <Director ...
- 《Linux下sed命令的使用》
grep -v 关键字 文件 文件中的关键字给过滤掉 grep -v “^关键字” 文件 以关键字开头的给过滤掉 sed -e ‘/关键字/d’文件 输出时把关键字给删除掉 以/etc ...
- SUID或SGID程序中能不能用system函数
system()函数的声明和说明如下: 注意它的描述那里,system()执行一个由command参数定义的命令,通过调用/bin/sh -c命令来实现这个功能.也就是说它的逻辑是这样的! 进程调用s ...
- javascript 数字字符串转为数字
var a="111"; comsole.log(a); //打印出来是个字符串类型 comsole.log(+a); //打印出来是个数字类型 comsole.log ...
- Vim一些实用的用法
打开多个文件: 1.vim还没有启动的时候:在终端里输入 vim file1 file2 ... filen便可以打开所有想要打开的文件2.vim已经启动输入:open file可以再打开一个文件,并 ...