-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値に変換する方法によって異なります。3 バイトを long の最下位 3 バイトに格納し、「負」が最上位ビットが設定されていることを意味する場合は、次を使用できるはずです。

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