我一直在使用 Objective-C 中的 InputStreams,并且似乎在处理接收到的数据时采取了错误的步骤。
我正在接收字节块,这些字节被读取并转换为数据类型,如整数、浮点数、双精度数等。
到目前为止,我的过程是这样的:
readBuffer = (uint8_t *) malloc(4);
memset(readBuffer, 0, 4);
while (length < byteLength) {
length = [InputStream read:readBuffer 4];
}
[something fourByteUint8ToLong:readBuffer];
现在为了做一些从 4 字节到长的转换
- (long) fourByteUint8ToLong:(uint8_t *) buffer
{
long temp = 0;
temp |= buffer[0] & 0xFF;
temp <<= 8;
temp |= buffer[1] & 0xFF;
temp <<= 8;
temp |= buffer[2] & 0xFF;
temp <<= 8;
temp |= buffer[3] & 0xFF;
return temp;
}
使用objective-C 类没有更简单的方法来处理这个问题吗?
在那种情况下怎么办?8 字节 -> 双字节,4 字节 -> 浮点。
提前致谢。