これまでのところ、受信した 8 バイトを UInt64 に変換するために行ったことは次のとおりです。
+ (UInt64)convertByteArrayToUInt64:(unsigned char *)bytes ofLength:(NSInteger)length
{
UInt64 data = 0;
for (int i = 0; i < length; i++)
{
data = data | ((UInt64) (bytes[i] & 0xff) << (24 - i * 8));
}
return data;
}
データを 8 バイトのデータに変換する送信者は、次のようにしました。
for(int i=1;i<9;i++)
{
statusdata[i] = (time >> 8*i & 0xff);
}
受信した 8 バイトのデータ データは次のとおりです。
01 00 00 00 00 00 00 3b
私の方法の出力は次のとおりです。
16777216
この「16777216」を計算機を使用してバイトに変換しようとしたところ、次のようになりました。
01 00 00 00 00 00 00
これは、3b が変換に含まれていないことを意味します。
しかし、Javaでこのコードを試してみましたが、うまくいきました。どこに問題があるのかわからない。
助けてください。前もって感謝します!