Na programação de rede, longos e int são geralmente processados de maneira nativa, em vez de converter em string para economia ou codificação de largura de banda.
classe pública ByteOrderUtils {public static byte [] int2byte (int res) {byte [] alvos = novo byte [4]; alvos [3] = (byte) (res & 0xff); // alvos de bits mais baixos [2] = (byte) ((res >> 8) e 0xff); // alvos secundários de bits baixos [1] = (byte) ((res >> 16) & 0xff); // altos secundários// right; retornar alvos; } public static int byteArrayToint (byte [] b) {byte [] a = novo byte [4]; int i = A.Length - 1, J = B.Length - 1; para (; i> = 0; i-, j--) {// Inicie os dados de copiar da cauda de B (ou seja, o bit baixo do valor int) se (j> = 0) a [i] = b [j]; caso contrário, [i] = 0; // se b.Length for menor que 4, adicione 0 ao alto bit} int v0 = (a [0] & 0xff) << 24; // & 0xff converte o valor do byte para int para evitar os bits de sinal de alto bit após a promoção do tipo java, int v1 = (a [1] & 0xff) int v2 = (a [2] e 0xff) << 8; int v3 = (a [3] e 0xff); retornar v0 + v1 + v2 + v3; } public static byte [] long2byte (long res) {byte [] buffer = novo byte [8]; para (int i = 0; i <8; i ++) {int offset = 64 - (i+1) * 8; buffer [i] = (byte) ((res >> deslocamento) e 0xff); } retornar buffer;} public static long bytearraytolong (byte [] b) {valores longos = 0; for (int i = 0; i <8; i ++) {valores << = 8; valores | = (b [i] e 0xff); } retornar valores; }}O exposto acima é o conteúdo completo da conversão Java Int em byte e longa conversão em byte trazida a você pelo editor. Espero que todos apoiem mais wulin.com ~