如何在java中以反向字节顺序读取BDC时间?

时间:2011-04-01 12:16:12

标签: java binary endianness bcd

所以我有这个字节数组:

// 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完成这项工作。

基本上,我如何反转字节数组的字节顺序(假设这确实是字节序问题)?

如何从java中的BCD字节中获取正确的值?我的意思是,如果我做了典型的& 0xFF事情显然会出错......

谢谢,

1 个答案:

答案 0 :(得分:1)

这样的事情:

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