gpt4 book ai didi

ios - 如何从 uint8_t 数组获取 "remove"数组元素或 ge 范围?

转载 作者:行者123 更新时间:2023-11-28 20:09:08 24 4
gpt4 key购买 nike

在我的 Iphone 应用程序中,我有一个 TCP 连接并且想要接收数据,它工作正常。

但我需要拆分一个 uint8_t 数组。

unsigned result;
uint8_t buffer[1024];
len = [inputStream read:buffer maxLength:sizeof(buffer)];
NSString *hexstring = [NSString stringWithFormat:@"%02x%02x%02x%02x",buffer[3],buffer[2],buffer[1],buffer[0]];
result = 0;
NSScanner *scanner = [NSScanner scannerWithString:hexstring];
[scanner scanHexInt:&result];
NSLog(@"HexString: %@ Result: %i ",hexstring,result);
NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];

这里我取前4个字节来获取接收包的长度。

现在我想要一个没有 buffer[1] - buffer[3] 的缓冲区数组范围的输出

我的意思是从 buffer[4] 到 buffer[length of packe] 的范围。

我该如何存档?

最佳答案

怎么样:

NSString *output = [[NSString alloc] initWithBytes: buffer + 4 length: len - 4 encoding:NSASCIIStringEncoding];

获胜的指针算法。

此外,获取 32 位 unsigned int通过 NSString 从 4 个字节开始非常迂回(更不用说慢了)。为什么不这样做:

uint32_t result = buffer[3] << 24 |  buffer[2] << 16 | buffer[1] << 8 | buffer[0];

我的意思是,即使那是迂回曲折的,但至少它是明确的,并且不假定主机的字节顺序,并且不通过字符串和 NSScanner 往返.

关于ios - 如何从 uint8_t 数组获取 "remove"数组元素或 ge 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20953973/

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