Hex编码 | 您所在的位置:网站首页 › 二进制是什么样的 › Hex编码 |
Hex编码的编码原理:
* Hex编码的原理就是将原来8位的二进制字节打断,分成两个4位的,并且在前面加上4个零, * 进行补位这样一个8位二进制字节就变成了2个8位的二进制字节,在将新得到的2个二进制字符进行16位进制转换 * 得到的新的16位字符串就是Hex的值,所以 二进制的[72, 69, 88] 《hex》 484558是相等的。 * [72, 69, 88]byte数组的二进制=01001000 01000101 01011000 * 二进制=01001000 01000101 01011000 进行hex的打断操作 0100 1000 0100 0101 0101 1000 * 在加上前面的4个零得到一个新的6个8位二进制 = 00000100 00001000 00000100 00000101 00000101 00001000 * 新的6个8位二进制 进行16进制转换 00000100 00001000 00000100 00000101 00000101 00001000 = 484558 * 总结所以说Hex编码后的二进制长度变为了原来的2倍,所以字节长度增加了一倍。 Hex的编码过程: 字符串: HEX ASCII码: [72,69,88] 二进制码: 01001000 01000101 01011000 重新分组: 0100 1000 0100 0101 0101 1000 高位补零后的二进制码: 00000100 00001000 00000100 00000101 00000101 00001000 十六进制码: 4 8 4 5 5 8 Hex码: 484558代码实现: package com.gl.test; import org.apache.commons.codec.binary.Hex; import java.util.Arrays; public class TestHex { public static void main(String[] args) { //一个字符串 String hex = "HEX"; //获取字符串的byte数组 byte[] buf = hex.getBytes(); //输出byte数组 System.out.println(Arrays.toString(buf)); //转换成Hex输出 System.out.println(Hex.encodeHexString(buf)); } } 注:这里需要引入 org.apache.commons.codec的jar包。 maven格式: commons-codec commons-codec 1.10
|
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |