我有一个必须转换成NSData的NSString。在转换成NSData之后,我需要在objective-c中转置NSData。如何在objective -c中转置NSData?
谢谢
发布于 2017-12-07 12:14:03
看起来你想颠倒字节的顺序,下面是一个概要算法:
NSData的length来获取字节数,Byte类型的C数组来保存字节。使用malloc()家族中的一个。getBytes:length:获取字节的副本Byte *变量,比如frontPtr,指向第一个字节;设置另一个,比方说rearPtr指向最后一个字节。frontPtr,递减rearPtr,并继续迭代,同时使用传递NSData作为最后一个参数的NSData的+ dataWithBytesNoCopy:length:freeWhenDone:从工作缓冲区获取新的+ dataWithBytesNoCopy:length:freeWhenDone:-这将获得D27缓冲区的所有权,因此您无需释放它。<代码>H228<代码>G229该算法简单地将两个指针从缓冲区的末端移向中间的交换字节。终止条件使其适用于偶数和奇数长度(在后一种情况下,中间字节不需要交换)。
另一方面,如果你不希望颠倒字节的顺序,而是颠倒每个字节中的位的顺序,Google "C bit reverse“并遵循与上述算法相同的通用结构,但在循环中进行位颠倒。
如果在编写上述代码后遇到问题,请提出新问题,包括您的代码,并解释您的问题。毫无疑问,有人会帮助你。
HTH
https://stackoverflow.com/questions/47669741
复制相似问题