`
a137268431
  • 浏览: 157549 次
文章分类
社区版块
存档分类
最新评论

Hex编码与解码

 
阅读更多

一、Hex编码简介

Hex 全称 是Intel HEX。Hex文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。

那么Hex编码是什么呢?就是将数据转化成符合Intel HEX文件中的数据格式的编码方式。举一个简单的例子,如下:

99、105、224,7

编码之后的数据为:“6369e007”,是一个字符串。

二、Hex编码与解码实现

  1. staticconstcharhex_table_uc[16]={'0','1','2','3',
  2. '4','5','6','7',
  3. '8','9','A','B',
  4. 'C','D','E','F'};
  5. staticconstcharhex_table_lc[16]={'0','1','2','3',
  6. '4','5','6','7',
  7. '8','9','a','b',
  8. 'c','d','e','f'};
  9. char*encodeToHex(char*buff,constuint8_t*src,intlen,inttype){
  10. inti;
  11. constchar*hex_table=type?hex_table_lc:hex_table_uc;
  12. for(i=0;i<len;i++){
  13. buff[i*2]=hex_table[src[i]>>4];
  14. buff[i*2+1]=hex_table[src[i]&0xF];
  15. }
  16. buff[2*len]='\0';
  17. returnbuff;
  18. }
  19. uint8_t*decodeFromHex(uint8_t*data,constchar*src,intlen){
  20. size_toutLen=len/2;
  21. uint8_t*out=data;
  22. uint8_taccum=0;
  23. for(size_ti=0;i<len;++i){
  24. charc=src[i];
  25. unsignedvalue;
  26. if(c>='0'&&c<='9'){
  27. value=c-'0';
  28. }elseif(c>='a'&&c<='f'){
  29. value=c-'a'+10;
  30. }elseif(c>='A'&&c<='F'){
  31. value=c-'A'+10;
  32. }else{
  33. returnNULL;
  34. }
  35. accum=(accum<<4)|value;
  36. if(i&1){
  37. *out++=accum;
  38. accum=0;
  39. }
  40. }
  41. returndata;
  42. }
分享到:
评论

相关推荐

    Hex 编码/解码工具下载

    在IT领域,Hex编码与解码是数据处理和通信中常见的技术。Hex编码,也称为十六进制编码,是将二进制数据转换为人类可读的十六进制表示方式。这种编码方法常用于计算机科学、网络通信和编程语言中,因为十六进制可以...

    java使用Hex编码解码实现Aes加密解密功能示例

    在本文示例中,我们关注的是如何利用Java的Hex编码和解码来处理AES加密和解密的过程。 首先,让我们了解什么是Hex编码。Hex编码是一种将二进制数据转换为可打印字符的表示方式,每个字节被转换为两个十六进制数字...

    加密,解密,Base64编码,解码, Hex的编码解码 的工具类

    在Java中,例如,可以使用`java.util.Base64`类进行Base64操作,`java.security.MessageDigest`配合`java.math.BigInteger`进行Hex编码解码,而对于加密解密,则可以使用`javax.crypto`包下的类。Python也有对应的`...

    cpp-cppcodec只包括头文件的Cbase64编码解码库

    总的来说,cppcodec是一个实用且高效的编码解码库,特别适合那些希望快速添加Base64、Base32和Hex编码解码功能到C++项目的开发者。其仅包含头文件的设计使得集成过程变得简单,而一致的API则提高了开发效率和代码...

    各种格式的编码解码工具类分享(hex解码 base64编码)

    本篇文章将详细介绍几种常见的编码解码方式,包括Hex编码、Base64编码以及URL编码,并提供一个集成Apache Commons Codec、Commons Lang和Java JDK的实用工具类`EncodeUtils`。 ### 1. Hex编码与解码 Hex编码是一种...

    commons-codec-1.6-src.zip

    4. **Hex编码与解码**: Hex编码是一种将二进制数据转换为16进制字符串的方法。在`src/main/java/org/apache/commons/codec/binary/Hex.java`中,你可以找到相关的源码,这个类提供了便捷的Hex编码和解码功能。 5....

    C++URL编码和解码

    C++作为一门强大的系统级编程语言,虽然没有内置的URL编码和解码函数,但开发者可以借助标准库和第三方库来实现这些功能。本文将深入探讨C++中如何进行URL编码和解码。 URL(Uniform Resource Locator)是互联网上...

    commons-codec-1.10.jar.zip

    2. **Hex编码与解码** Hex编码是将每个字节转换为两个十六进制字符的过程。在`Hex`类中,我们可以使用`encode()`和`decode()`方法来进行Hex编码和解码操作,这对于显示或存储二进制数据时非常有用。 3. **电话号码...

    hex:简单的十六进制字符串编码器解码器

    hex - 编码和解码十六进制字符串 用于编码和解码十六进制字符串的简单工具。 用法: var hex = require('hex'); var encodedString = hex.encode('Hello world'); // encodedString == "48656c6c6f20776f726c64" ...

    commons-codec-1.9.jar

    2. **Hex编码与解码**:Hex编码将每个字节转换为两个十六进制字符,使得二进制数据以文本形式呈现。`Hex`类提供了对字节数组进行Hex编码和解码的方法,这对于日志记录、数据交换等场景非常有用。 3. **URL编码与...

    commons-codec-1.15-bin.zip

    2. **Hex编码与解码**: - 除了Base64,还提供了Hex编码器和解码器。Hex编码将每个字节转换为两个十六进制字符,使得原始二进制数据可读性增强。这种编码常用于存储或显示二进制数据,比如在日志文件中。 3. **...

    commons-codec-1.12-bin.tar.gz

    三、Hex编码与解码 Hex编码是将每个字节表示为两个十六进制数字。Codec库中的Hex类提供了将字节数组和字符串转换为十六进制字符串,以及反向转换的函数,这对于显示和比较二进制数据非常有用。 四、Phonetic编码 ...

    官方commons-codec-1.5加密jar包

    2. **Hex编码与解码**:Hex编码是将每个字节转换为两个十六进制数字的表示。Hex类提供了一对静态方法,可以方便地将字节数组转换为十六进制字符串,反之亦然,这对于数据的可视化和存储非常有用。 3. **URL编码与...

    commons-codec-1.6-bin.zip

    2. **Hex编码与解码**: Hex编码将每个字节转换为两个十六进制字符。这个库中的Hex类提供了静态方法来进行Hex到字节和字节到Hex的转换,这对于在文本格式中表示二进制数据非常有用,比如在日志记录或者网络传输中。...

    commons-codec-1.15和1.10.zip

    2. **Hex编码与解码**: Hex编码将每个字节转换为两个十六进制字符。在Apache Commons Codec中,`Hex`类提供了`encode()`和`decode()`方法,分别用于进行十六进制编码和解码。这种编码方式常用于在文本环境中展示或...

    commons-codec.jar

    2. **Hex编码与解码**:Hex编码将字节转化为16进制表示,常用于显示二进制数据。这个库提供了将字节数组转换为十六进制字符串,以及将十六进制字符串还原为原始字节数组的函数。 3. **URL编码与解码**:在处理URL时...

    hexview图片解码工

    "Hexview图片解码工"是一款专用于图片解码的工具,主要针对的是二进制数据的查看和解析。在IT行业中,这类工具对于开发者、安全研究人员以及数据分析人员来说非常实用,因为它能帮助他们理解存储在文件中的图像数据...

    commons-codec-1.6-uzzf

    2. **Hex编码与解码** Hex编码将每个字节转换为两个十六进制字符。在Apache Commons Codec中,`Hex`类提供了此类功能,如`Hex.encodeHex()`用于编码,`Hex.decodeHex()`用于解码。 3. **Phonetic编码** 这个库还...

    commons-codec1.11

    三、Hex编码与解码 Hex编码将每个字节转换为两个十六进制字符。在Commons Codec中,Hex类提供了便捷的静态方法来实现这种转换,便于在文本格式中表示二进制数据。 四、URL编码与解码 在处理URL时,特殊字符需要被...

    commons-codec-1.10.jar

    2. **Hex编码与解码**:Hex编码将每个字节转换为两个十六进制数字,便于在纯文本环境中传输二进制数据。Apache Commons Codec库中的Hex类提供了便捷的Hex转二进制和二进制转Hex的功能。 3. **Phonetic编码**:...

Global site tag (gtag.js) - Google Analytics