一、Hex编码简介
Hex 全称 是Intel HEX。Hex文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中,每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。
那么Hex编码是什么呢?就是将数据转化成符合Intel HEX文件中的数据格式的编码方式。举一个简单的例子,如下:
99、105、224,7
编码之后的数据为:“6369e007”,是一个字符串。
二、Hex编码与解码实现
-
staticconstcharhex_table_uc[16]={'0','1','2','3',
-
'4','5','6','7',
-
'8','9','A','B',
-
'C','D','E','F'};
-
staticconstcharhex_table_lc[16]={'0','1','2','3',
-
'4','5','6','7',
-
'8','9','a','b',
-
'c','d','e','f'};
-
-
char*encodeToHex(char*buff,constuint8_t*src,intlen,inttype){
-
inti;
-
-
constchar*hex_table=type?hex_table_lc:hex_table_uc;
-
-
for(i=0;i<len;i++){
-
buff[i*2]=hex_table[src[i]>>4];
-
buff[i*2+1]=hex_table[src[i]&0xF];
-
}
-
-
buff[2*len]='\0';
-
-
returnbuff;
-
}
-
-
uint8_t*decodeFromHex(uint8_t*data,constchar*src,intlen){
-
size_toutLen=len/2;
-
-
uint8_t*out=data;
-
-
uint8_taccum=0;
-
for(size_ti=0;i<len;++i){
-
charc=src[i];
-
unsignedvalue;
-
if(c>='0'&&c<='9'){
-
value=c-'0';
-
}elseif(c>='a'&&c<='f'){
-
value=c-'a'+10;
-
}elseif(c>='A'&&c<='F'){
-
value=c-'A'+10;
-
}else{
-
returnNULL;
-
}
-
-
accum=(accum<<4)|value;
-
-
if(i&1){
-
*out++=accum;
-
accum=0;
-
}
-
}
-
-
returndata;
-
}
分享到:
相关推荐
主要介绍了java使用Hex编码解码实现Aes加密解密功能,结合完整实例形式分析了Aes加密解密功能的定义与使用方法,需要的朋友可以参考下
Hex 编码/解码工具,可以把任意字符串编码为16进制表示的字符,也可以把16进制字符还原为原始字符串。
加密,解密,Base64编码,解码 Hex的编码解码 的工具类
hex - 编码和解码十六进制字符串 用于编码和解码十六进制字符串的简单工具。 用法: var hex = require('hex'); var encodedString = hex.encode('Hello world'); // encodedString == "48656c6c6f20776f726c64" ...
/** * 封装各种格式的编码解码工具类. * 1.Commons-Codec的 hex/base64 编码 * 2.自制的base62 编码 * 3.Commons-Lang的xml/html escape * 4.JDK提供的URLEncoder */
主要介绍了各种格式的编码解码工具类,集成Commons-Codec、Commons-Lang及JDK提供的编解码方法
Base64编码/解码URL的十六进制字符串(模块和二进制工具) 安装: npm install -g hex64 命令行: $ hex64 b64 cccccc zMzM $ hex64 hex zMzM cccccc $ hex64 cccccc b64: zMzM $ hex64 zMzM hex: cccccc $ hex64 ...
摘要:脚本资源,Ajax/JavaScript,Js编码,解码 JavaScript版GBK编码、解码函数演示,在你选择使用GBK编码、用POST或GET方式发送信息到服务器的时候,注意过浏览器发送的编码是什么样的吗?碰到过编码错误的情况吗?此...
base64 加解码 base64转hex Base64转图片 图片转Base64工具 可选Unicode UTF8等编码格式。前一个不 支持换行,此版本已支持。 (使用前,麻烦安装DotNet4.0以上版本)
cppcodec - 只包括头文件的C base64编码/解码库, 还支持base32和hex 拥有一致的,灵活的API
NULL 博文链接:https://yingyingsheji.iteye.com/blog/2399192
Base64编码、转换、解码代码,速度较快,可直接在程序中引用。
cppcodec仅标头的C ++ 11库,用于对RFC 4648中指定的base64,base64url,base32,base32hex和hex(也称为base16)进行编码/解码,以及Crockford的base32。 麻省理工学院许可使用一致,灵活的API。 支持原始pop ...
redis中使用utf8编码,使用c#简单完成转换。
2. 对字符串进行BASE64解码,字符串内容是十六进制,字符不编码 3. flinksql进行调用 4. 自定义函数调用过程 4.1. 编译打包代码,生成的jar复制到flink安装目录下的lib目录。 例如:/flink/lib 4.2. flinksql脚本...
hex_encode() 函数对来自src的len字节进行编码,并将编码的字节复制到dest 。 参数 *dest : dest 大小必须大于len * 2。 *src : 源字符串。 len : src字节长度。 int hex_decode( char *dest, unsigned char *...
base64 加解码 URL编码、 base64转hex Base64转图片 图片转Base64工具,比网上其它的方便好用,支持大于1M内容
php base64 编码与解码详解 1.自定义规则方式编码和解码 实例 public function test_changinttoStr () { $intvalue1 = 1232344234; $intStr = ''; $str = "Y 9 L F k g y 5 R o v i x I 1 a O f 8 U h d s 3 r ...
易语言[对象版]编码转换,支持Base64加解码
一、Base64编码和解码二、Hex编码和解码三、MD5加密(MD5是不可逆算法,只能加密)四、SHA加密五、Metaphone和Soundex六、URLCodec