1. Byte a decimal
Use la conversión de tipo (int) directamente.
/** Byte a decimal*/ public static int byte2int (byte b) {int r = (int) b; regresar r; }2. Decimal a bytes
Use directamente la conversión de tipo (byte).
/** decimal a byte*/ public static byte int2byte (int i) {byte r = (byte) i; regresar r; }3. Matriz de bytes a la cadena hexadecimal
Para cada byte, primero haga la misma operación con 0xff, y luego use la función Integer.ToHexString (). Si el resultado es solo 1 bit, debe agregar 0 al frente.
/** Byte Array a Hex String*/ public static String bytes2HexString (byte [] b) {string r = ""; for (int i = 0; i <b.length; i ++) {string hex = integer.tohexString (b [i] & 0xff); if (hex.length () == 1) {hex = '0' + hex; } r += hex.ToUpperCase (); } return r; }4. Hexadecimal String to Byte Array
Esto es más complicado. Cada carácter hexadecimal es de 4 bits y un byte tiene 8 bits, por lo que dos caracteres hexadecimales se convierten en 1 byte. Para el primer carácter, conviértalo en byte y luego cambielo por 4 bits, y luego realice u opere con el segundo byte de carácter, de modo que los dos caracteres se conviertan en 1 byte.
/** Los caracteres se convierten en byte*/ private static byte ChartoByte (char c) {return (byte) "0123456789abcdef" .indexof (c); } /** Hex String to Byte Array* / public static byte [] hexString2bytes (string hex) {if ((hex == null) || (hex.equals (""))) {return null; } else if (hex.length ()%2! = 0) {return null; } else {hex = hex.ToUpperCase (); int len = hex.length ()/2; byte [] b = nuevo byte [len]; char [] hc = hex.toCarArray (); para (int i = 0; i <len; i ++) {int p = 2*i; b [i] = (byte) (ChartoByte (HC [P]) << 4 | CHARTOBYTE (HC [P+1])); } retorno b; }}5. Para convertir una matriz de bytes en una cadena
Use nueva cadena () directamente.
/** Byte Array a String*/ public static String bytes2string (byte [] b) lanza la excepción {String r = new String (b, "UTF-8"); regresar r; }6. Cadena a la matriz de bytes
Use getBytes () directamente.
/** Cadena a la matriz de byte*/ public static byte [] string2bytes (String S) {byte [] r = s.getBytes (); regresar r; }7. Cadena hexadecimal a la cadena
Convierta a byte [] primero, luego convierta a cadena.
/** HexString a String*/ public static string hex2string (string hex) lanza la excepción {string r = bytes2String (hexString2Bytes (hex)); regresar r; }8. Cadena a una cadena hexadecimal
Convierta a byte [] primero, luego convierta en cadena hexadecimal.
/** Cadena a hexadecimal string*/ public static String String2HexString (String S) lanza la excepción {String r = bytes2HexString (string2bytes (s)); regresar r; }Función principal:
public static void main (string [] args) lanza la excepción {byte b1 = (byte) 45; System.out.println ("1. Byte to decimal:" + byte2Int (b1)); int i = 89; System.out.println ("2.1 para byte a byte:" + int2byte (i)); byte [] b2 = new byte [] {(byte) 0xff, (byte) 0x5f, (byte) 0x6, (byte) 0x5a}; System.out.println ("3. Matriz de bytes a la cadena hexadecimal:" + bytes2hexString (b2)); Cadena s1 = nueva cadena ("1DA47c"); System.out.println ("4.16% de cadena a la matriz de bytes:" + arrays.toString (hexString2bytes (S1))); System.out.println ("5. Array de byte a la cadena:" + bytes2string (b2)); System.out.println ("6. Cadena a la matriz de bytes:" + arrays.toString (string2bytes (s1))); System.out.println ("7.16% String to String:" + hex2string (S1)); Cadena s2 = nueva cadena ("¡Hola!"); System.out.println ("8. Cadena a una cadena hexadecimal:" + String2HexString (S2)); }Resultados de ejecución:
1. Cadena hexadecimal a la matriz de bytes: [29, -92, 124] 5. Matriz de bytes a la cadena :? _ Z6. Cadena a la matriz de bytes: [49, 68, 65, 52, 55, 67] 7. Cadena hexadecimal a la cadena :? | 8. Cadena a Hexadecimal String: 48656C6C6F21
El artículo anterior analiza brevemente la conversión mutua entre binario, decimal, hexadecimal y cadenas es todo el contenido que comparto con ustedes. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.