16進文字列の変換のバイト[]配列

1バイト[]配列は、16進数の文字に変換されます。

 / ** 
     *バイト[]配列は、16進文字に変換されます。2バイト文字の長さの対応を生成する1:2 
     * @param バイト、入力バイト[]配列
     * @return 16進数の文字
      * / 
    パブリック 静的文字列byte2Hex(バイト[]バイト){
         IF(バイト== NULL ){
             戻り NULL ; 
        } 
        のStringBuilderビルダー = 新しい新規のStringBuilder();
         // その文字列に一緒にスプライスされた数の16進文字に各バイトを変換反復バイト[]配列、
        のためにINT I = 0; I <bytes.length ; I ++ ){
             //[I]&0xffで、16進数の文字に各バイトをバイト変換するとき上位ビットが0である場合、出力は、2つの文字が次に取ら、除去、そう+ 0x100の(プラス1ビット以上)する 
            builder.append(整数。 TOSTRING((バイト[I]&0xFFで)+ 0x100の、16).substring(1。 )); 
        } 
        戻りbuilder.toStringを(); 
    }

2進数の文字はバイトに変換[]配列

/ ** 
     *は、16進数の文字バイト[]配列に変換します。byte2Hex機能に反して。
     * @Param 文字列の16進数の文字列
     * @return バイト[]配列
      * / 
    パブリック 静的 バイト[] hex2Byte(文字列){
         IF(文字列== NULL || String.lengthです()<1。){
             戻り NULL ; 
        } 
        // 2バイト文字を生成するので、長さは1に相当する:図2は、バイト[]配列の長さは、文字列の長さの半分である
        バイト []バイト= 新しい新しい バイト [String.lengthです()/ 2 ];
         // トラバースバイト[]文字列の配列、トラバースの数は半分の長さ
        のためにINT0 = I; I <String.lengthです()/ 2; I ++ ){
             // 変換INTなかった前の2つの文字を撮影し、
            INT高はInteger.parseInt(String.substringを(I * 2 = I * 2 + 1)、16に);
             // ない変換intで2文字、後に撮影、
            INTローはInteger.parseInt(String.substring(I * 2 + 1、I + 2 * 2)= 16 );
             // 文字* 16 + INT int値のローに対応する高い値、およびバイト値に変わることが強い
             // 小数点に対応するバイトのバイナリ11011101にかかるDD、低高い13×16 + 13 = 221(強い変換-35) 
            [I] =(バイトバイト)(* 16 +ハイ・ロー); 
        } 
        戻りバイト; 
    }

おすすめ

転載: www.cnblogs.com/hello4world/p/12147537.html