如何以位为单位显示NSData的内容?

时间:2012-02-07 09:27:06

标签: iphone objective-c cocoa-touch nsdata bit

我有NSData,我需要以纯位查看其内容。试过NSLog [NSData description]但它返回NSString。有什么建议吗?

2 个答案:

答案 0 :(得分:7)

将其用于字节

const char *byte = [data bytes];
NSLog(@"%s",byte);

这是比特

const char *byte = [data bytes];
unsigned int length = [data length];
for (int i=0; i<length; i++) {
    char n = byte[i];
    char buffer[9];
    buffer[8] = 0; //for null
    int j = 8;
    while(j > 0)
    {
        if(n & 0x01)
        {
            buffer[--j] = '1';
        } else
        {
            buffer[--j] = '0';
        }
        n >>= 1;
    }
    printf("%s ",buffer);

答案 1 :(得分:2)

您可以在内存浏览器窗口中查看这些字节:

void* bytes_memory = [yourData bytes];  // set breakpoint after this line

...在地址变量窗口中停止断点后找到bytes_memory,右键单击它并选择View memory of *bytes_memory

如果要打印到控制台位(格式为10011100),则需要将数据转换为相应的字符串表示形式(here为例)。