到目前为止,这是我将收到的 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下尝试了这段代码,它工作正常。我不知道问题出在哪里。
请帮忙。提前致谢!