gpt4 book ai didi

ios - 将 InputStream 数据转换为不同的数据类型

转载 作者:行者123 更新时间:2023-11-29 13:36:30 25 4
gpt4 key购买 nike

我一直在使用 Objective-C 中的 InputStreams,似乎在处理接收到的数据时采取了错误的步骤。

我正在接收字节 block ,这些字节 block 被读取并转换为数据类型,如整数、 float 、 double 等。

目前我的流程是这样的:

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 。

提前致谢。

最佳答案

使用CoreFoundation.h类函数解决的问题:

uint8_t * buffer;
buffer = (uint8_t *) malloc(8);
double tempDouble = CFConvertFloat64SwappedToHost(*((CFSwappedFloat64*)buffer));

关于ios - 将 InputStream 数据转换为不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10462424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com