(Debido a la longitud de la razón, la explicación no es detallada y lo suficientemente científica, por favor no critique si no le gusta).
A menudo veo diferentes definiciones de matrices de bytes en Java, por lo que las resolveré:
Un byte = 8 bits, y todos los "matriz de bytes" son "byte", es decir, cada byte puede representarse en binario, hexadecimal y decimal.
Binario: 00010110 ------> 0*2^8 + 0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 22
Hexadecimal: 0x16 -------> 1*16^1 + 6*16^0 = 22
Decimal: 22
Entonces, los siguientes tres son equivalentes:
byte [] aa = {00010110, 01010010, 10111000};
byte [] aa = {0x16, 0x52, 0xb8};
byte [] aa = {22, 82, 184};
Al depurar los puntos de interrupción del eclipse, el contenido de las matrices de bytes que ve se expresan en decimal. A veces se ve números negativos porque los números superiores a 127 en la matriz de bytes se mostrarán como números negativos.
Sabemos que Java solo lee las matrices de bytes, mientras que el byte tiene 8 bits, por lo que no puede exceder los 127. Si excede, se desbordará y se mostrará en forma de un número negativo.
El artículo anterior habla brevemente sobre los diferentes métodos de escritura de la matriz de bytes de Java es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.