Hexコード

1668 ワード

Hex符号化の符号化原理:


*Hex符号化の原理は、元の8ビットのバイナリバイトを2つの4ビットに分割し、前に4つのゼロを加算することである.*補位を行うという8ビットのバイナリバイトが2つの8ビットのバイナリバイトとなり、新たに得られた2つのバイナリ文字を16ビット変換する.*得られた新しい16ビット文字列がHexの値であるため、バイナリの[72,69,88]『hex』484558は等しい.*[72, 69, 88]byte配列のバイナリ=01001001000 01000101*01011000*バイナリ=01001001000 0100001 hexの割り込み操作を行う0100 1000 0101 1000*前の4つのゼロを加えて新しい6つの8つのバイナリ=0000 0100 00001000 0000 0100 000101*新しい6つの8つの8つの8つのバイナリを16進数変換する00000100000101 000000101 0000001000=484558*ということで、Hex符号化後のバイナリ長が2倍になったため、バイト長が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