Java странный результат байтового массива - PullRequest
0 голосов
/ 28 октября 2019

Я программирую RTP в Java для моих исследований. для заголовка, согласно rfc, у меня есть массив из 12 байтов.

The RTP header has the following format:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|X|  CC   |M|     PT      |       sequence number         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           timestamp                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           synchronization source (SSRC) identifier            |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   |            contributing source (CSRC) identifiers             |
   |                             ....                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Чтобы преобразовать мои значения, я решил использовать целое число в строке, а затем преобразовать его в байтовый массив. Мои целые числа (каждая строка) выглядят хорошими при отображении в двоичном виде, но при преобразовании в байтовый массив первый байт выглядит следующим образом: 0xff 0xff 0xff 0x [правильное значение]

Похоже, у меня 4 байта в одномbyte (странно звучит)

Моя функция массива int to bytes не от меня, а выглядит так:

public static byte[] toByteArray(int number)  {  
    int temp = number;  
    byte[] b=new byte[4];  
    for (int i = b.length - 1; i > -1; i--)   {  
      b[i] = new Integer(temp & 0xff).byteValue();  
      temp = temp >> 8;  
    }  
    return b;  
  } 

Есть ли у вас какие-либо идеи, откуда произошла моя ошибка и почему этот результатвозможно?

thx

...