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 +ハイ・ロー); } 戻りバイト; }