首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在objective-c中转置NSData?

如何在objective-c中转置NSData?
EN

Stack Overflow用户
提问于 2017-12-06 16:20:13
回答 1查看 97关注 0票数 0

我有一个必须转换成NSData的NSString。在转换成NSData之后,我需要在objective-c中转置NSData。如何在objective -c中转置NSData?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-12-07 12:14:03

看起来你想颠倒字节的顺序,下面是一个概要算法:

  1. 使用NSDatalength来获取字节数,
  2. 分配一个Byte类型的C数组来保存字节。使用malloc()家族中的一个。
  3. 使用getBytes:length:获取字节的副本
  4. 设置一个C Byte *变量,比如frontPtr,指向第一个字节;设置另一个,比方说rearPtr指向最后一个字节。
  5. 现在进行迭代,交换两个指针引用的字节,然后递增frontPtr,递减rearPtr,并继续迭代,同时使用传递NSData作为最后一个参数的NSData+ dataWithBytesNoCopy:length:freeWhenDone:从工作缓冲区获取新的+ dataWithBytesNoCopy:length:freeWhenDone:-这将获得D27缓冲区的所有权,因此您无需释放它。<代码>H228<代码>G229

该算法简单地将两个指针从缓冲区的末端移向中间的交换字节。终止条件使其适用于偶数和奇数长度(在后一种情况下,中间字节不需要交换)。

另一方面,如果你不希望颠倒字节的顺序,而是颠倒每个字节中的位的顺序,Google "C bit reverse“并遵循与上述算法相同的通用结构,但在循环中进行位颠倒。

如果在编写上述代码后遇到问题,请提出新问题,包括您的代码,并解释您的问题。毫无疑问,有人会帮助你。

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47669741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档