В сетевом программировании Long и Int обычно обрабатываются нативным образом, а не конвертируются в строку для сохранения или кодирования полосы пропускания.
открытый класс byteorderutils {public static byte [] int2byte (int res) {byte [] targets = new Byte [4]; Цели [3] = (byte) (res & 0xff); // самые низкие битовые цели [2] = (byte) ((res >> 8) & 0xff); // вторичные мишени с низким битом [1] = (байт) ((res >> 16) & 0xff); // вторичные высокие биты [0] = (byte) (res >>> 24); вернуть цели; } public static int bytearraytoint (byte [] b) {byte [] a = new Byte [4]; int i = A.Length - 1, j = B.Length - 1; for (; i> = 0; i-, j--) {// Начало копировать данные из хвоста b (то есть низкое бит значения int) if (j> = 0) a [i] = b [j]; else a [i] = 0; // Если b.length меньше 4, добавьте 0 в высокий бит} int v0 = (a [0] & 0xff) << 24; // & 0xff преобразует значение байта в int, чтобы избежать битов знака высокого бита после пропаганды Java Automatic Type, int v1 = ([1] & 0xff) << 16; int v2 = (a [2] & 0xff) << 8; int v3 = (a [3] & 0xff); вернуть v0 + v1 + v2 + v3; } public static byte [] long2byte (long res) {byte [] buffer = new Byte [8]; for (int i = 0; i <8; i ++) {int offset = 64 - (i+1) * 8; буфер [i] = (byte) ((res >> смещенное) & 0xff); } return Buffer;} public Static Long Bytearraytolong (byte [] b) {long values = 0; for (int i = 0; i <8; i ++) {values << = 8; значения | = (b [i] & 0xff); } возвращаемые значения; }}Вышеуказанное - полное содержание конверсии Java Int в байт и длительное преобразование в байт, принесенный вам редактором. Я надеюсь, что все будут поддерживать wulin.com больше ~