NSString以二进制格式打印

1 objective-c

我不理解下面将int转换为byte的情况,下面的java代码可以打印如下的字节值

System.out.println("binary output :::"+ Byte.toString(bo [0]));
System.out.println("binary output :::"+ Byte.valueOf(bo [1]));
System.out.println("binary output :::"+ Byte.valueOf(bo [2]));
System.out.println("binary output :::"+ Byte.valueOf(bo [3]));
System.out.println("binary output :::"+ new String(bo));

binary output ::: 0
binary output ::: 0
binary output ::: 0
binary output ::: 1
binary output ::: squaresquaresquaresquare(4 square chars) - 二进制数据

但当我将相同数据的目标c代码制作成最终的NSString时,它也打印为"0001"但不是二进制格式(4个方格)

我需要二进制格式的NSString如何以二进制格式而不是"0001"打印NSString

请帮忙

Rob*_*man 5

如果可读性是一个问题,那么让我建议一个快速例程,它将把一个int变成一串字符串为"1"和"0"字符的半字节组:

NSString *binaryRepresentation(int value)
{
    long nibbleCount = sizeof(value) * 2;
    NSMutableString *bitString = [NSMutableString stringWithCapacity:nibbleCount * 5];

    for (int index = 4 * nibbleCount - 1; index >= 0; index--)
    {
        [bitString appendFormat:@"%i", value & (1 << index) ? 1 : 0];
        if (index % 4 == 0)
        {
            [bitString appendString:@" "];
        }
    }

    return bitString;
}
Run Code Online (Sandbox Code Playgroud)

所以
binaryRepresentation(1)返回0000 0000 0000 0000 0000 0000 0000 0001

binaryRepresentation(1423)返回0000 0000 0000 0000 0000 0101 1000 1111