ホームページ >Java >&#&チュートリアル >JAVAの16進数と文字列の変換
toHexString
public static String toHexString(int i) は、整数パラメーターの文字列表現を 16 進数の符号なし整数形式で返します。
パラメータが負の場合、符号なし整数値はパラメータに 232 を加えた値になります。それ以外の場合は、パラメータと等しくなります。値を先頭の 0 を除いた 16 進数 (base 16) ASCII 数値文字列に変換します。符号なし数値のサイズ値がゼロの場合は、ゼロ文字 '0' ('u0030') で表されます。それ以外の場合、符号なし数値のサイズ表現の最初の文字はゼロ文字になりません。次の文字を 16 進数として使用します:
0123456789abcdef
これらの文字の範囲は「u0030」から「u0039」および「u0061」から「u0066」です。大文字が必要な場合は、結果に対して String.toUpperCase() メソッドを呼び出すことができます:
Integer.toHexString(n).toUpperCase()
パラメータ:
i - 文字列に変換される整数。
戻り値:
16 進数 (基数 16) 引数の符号なし整数値の文字列表現。
//文字列を 16 進エンコードに変換します
public static String toHexString(String s)
{
String str="";
for (int i=0;i10ecbb5a14c732e96ac6122957adf128>4));
sb.append(hexString.charAt((bytes [i]&0x0f)>>0)); .toString();
}
/*
* すべての文字 (中国語を含む) に適用可能な 16 進数を文字列にデコードします
* /
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length) ()/2);
//すべての 2 桁の 16 進整数を 1 バイトに組み立てます
for(int i= 0;i
return new String(baos.toByteArray());
2 番目のメソッド:
指定された文字列を出力します。バイト配列を 16 進形式でコンソールに送信します
package com.nantian.iclient.atm.sdb; public class Util { public Util() { } /** * 将指定byte数组以16进制的形式打印到控制台 * @param hint String * @param b byte[] * @return void */ public static void printHexString(String hint, byte[] b) { System.out.print(hint); for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[i] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } System.out.print(hex.toUpperCase() + " "); } System.out.println(""); } /** * * @param b byte[] * @return String */ public static String Bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[i] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } ret += hex.toUpperCase(); } return ret; } /** * 将两个ASCII字符合成一个字节; * 如:"EF"--> 0xEF * @param src0 byte * @param src1 byte * @return byte */ public static byte uniteBytes(byte src0, byte src1) { byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue(); _b0 = (byte)(_b0 << 4); byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue(); byte ret = (byte)(_b0 ^ _b1); return ret; } /** * 将指定字符串src,以每两个字符分割转换为16进制形式 * 如:"2B44EFD9" --> byte[]{0x2B, 0x44, 0xEF, 0xD9} * @param src String * @return byte[] */ public static byte[] HexString2Bytes(String src){ byte[] ret = new byte[8]; byte[] tmp = src.getBytes(); for(int i=0; i<8; i++){ ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]); } return ret; } }