我正在通过网络(来自 ac# windows 服务器)发送一个 8 字节的数值,我的 iDevice 需要接收该数值。该值是我的服务器(System.Int64)上的“长”变量。我检查了该值是否正确转换为字节数组,使用
byte[] valueBytes = BitConverter.GetBytes(mylongvalue);
数据通过 NSData 变量在 iDevice 上接收。我需要跳过前 3 个字节,然后读取接下来的 8 个字节来计算我的 long long 值。
我试过这个:
NSData * longlongValueBytes = [receivedData subDataWithRange:NSMakeRange(3,8)];
long long receivedLongLongValue = *(const long long *)[longlongValueBytes bytes];
但这仅适用于低于 128 的值。每个发送的高于或等于 128 的值在收到时总是返回 127。
我错过了什么?这可能与符号问题有关,还是与字节顺序问题有关?
谢谢你的帮助。