【发布时间】:2012-03-14 11:07:28
【问题描述】:
我正在读取以 9 位二进制格式保存的测量数据,没有空格,例如
101001110 001011100 001101010 101010110 100001011 等
数据来自旧的测量设备,有时,我必须读取大块的数据,例如10、11 或 12 位。我总是知道要读取的整数大小,因为文件开头有一些文件信息。
但在 iOS/Objective-C 中,我只知道如何将二进制数据缩小到 8 位字节的大小,例如Int8、int16 等。并将这些 8 位或 16 位块转换为整数。
如何以按位预定义的步骤逐步执行 NSData 对象?
【问题讨论】:
-
bithacks page 上的大多数例程都是为正常大小的数字设计的,但我预测在不久的将来你会比普通程序员编写更多的比特旋转代码,而这指南可能会在晚上温暖你的心。
-
除了位移和仔细跟踪您所在的位置之外,没有“简单”的方法可以做到这一点
-
这甚至不值得成为一个问题,更不用说有答案了。我的意思是,在 C 语言中,您只能将文件读取为整个字符的倍数(通常为 8 位长),对此您无能为力。
-
@Alex 如果可以的话,我会对该评论进行-1。只需看看其他回复,看看它有多么错误。
标签: objective-c c binary integer nsdata