Я работал с InputStreams в Objective-C и, похоже, сделал неправильный шаг в обработке полученных данных.Преобразование данных InputStream в разные типы данных
Я получаю куски байтов, которые считываются и преобразуются в типы данных, как целые числа, поплавки, удваивается и т.д.
До сих пор мой процесс выглядит так:
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-байты -> double, 4-байты -> float.
Заранее спасибо.