Как читать время BDC с обратным порядком байтов в Java? - PullRequest
0 голосов
/ 01 апреля 2011

Итак, у меня есть этот байтовый массив:

// tvltmp[0] = 0x21;
// tvltmp[1] = 0x63;
// tvltmp[2] = 0x84;

И это представляет "12:36:48" в том, что я назвал «обратным порядком байтов BDC».

Чтобы декодировать это, нужно просто следовать этому руководству:

      LSD | MSD 
byte0    2|1    Hour
byte1    6|3    Minute
byte2    8|4    Second

LSD = Least Significant Digit
MSD = Most Significant Digit

Что достаточно справедливо.

Я просто понятия не имею, как это сделать на Java.

В основном, как инвертировать байтовый массив (если предположить, что это действительно проблема байтов)?

И как мне получить правильные значения из байтов BCD в Java? Я имею в виду, что если я сделаю типичные & 0xFF, то все пойдет не так ...

Спасибо

1 Ответ

1 голос
/ 01 апреля 2011

Примерно так:

public int fromReverseBCD(byte b) {
    return 10 * (b & 0xf) + ((b >>> 4) & 0xf);
}
...