байтовый массив в десятичное преобразование в Java - PullRequest
1 голос
/ 30 июня 2010

Я новичок в Java.Я получаю данные UDP в байтовом массиве.Каждый элемент байтового массива имеет шестнадцатеричное значение.Мне нужно преобразовать каждый элемент в целое число.

Как преобразовать его в целое число?

Ответы [ 4 ]

7 голосов
/ 30 июня 2010

пример кода:

 public int[] bytearray2intarray(byte[] barray)
 {
   int[] iarray = new int[barray.length];
   int i = 0;
   for (byte b : barray)
       iarray[i++] = b & 0xff;
   // "and" with 0xff since bytes are signed in java
   return iarray;
 }
2 голосов
/ 30 июня 2010

Вручную: переберите элементы массива и приведите их к int или используйте Integer.valueOf() для создания целочисленных объектов.

1 голос
/ 11 января 2013

Функция: вернуть беззнаковое значение байтового массива.

public static long bytesToDec(byte[] byteArray) {
    long total = 0;
    for(int i = 0 ; i < byteArray.length ; i++) {
        int temp = byteArray[i];
        if(temp < 0) {
            total += (128 + (byteArray[i] & 0x7f)) * Math.pow(2, (byteArray-1-i)*8); 
        } else {
            total += ((byteArray[i] & 0x7f) * Math.pow(2, (byteArray-1-i)*8));
        }
    }
    return total;
}
0 голосов
/ 30 июня 2010

Вот кое-что, что я нашел, может быть вам полезно http://blog.codebeach.com/2008/02/convert-hex-string-to-integer-and-back.html

...