-5

我有 3 字节数据,来自外部来源。我曾经很长时间存储该数据,现在我需要检查即将到来的数据是负数还是正数。为此,我使用了代码:

long min = Long.MIN_VALUE;
     long i = ((longData+ min) & 0xFF) - min;

     if(i <0)
     {
         System.out.print(i+"negative");
     }
     else
         System.out.print(i+"positive");

但这不起作用,请您指导我。

4

1 回答 1

2

这将取决于您所说的“负数”以及您如何将 3 个字节转换为一个long值。如果将三个字节存储在 long 的三个最低有效字节中,并且如果“负”表示设置了最高位,那么您应该能够使用:

if ((longData & (1L<<23)) != 0) {
    System.out.print(i+"negative");
}
else {
    System.out.print(i+"positive");
}
于 2013-04-19T10:44:20.833 回答