在Objective-C中,如何以二进制形式显示uint8_t变量?

时间:2014-07-29 18:56:43

标签: objective-c printf

说我开始:

uint8_t x = 0x12;

出于调试目的,我想"打印"它是二进制的(使用NSLog)所以我看到:000010010。

在Objective-C中有没有办法做到这一点?我得到的最接近的是使用%o格式,它给出了22,然后手动将其转换为二进制格式。

那么uint16_t y = 0x1234;或uint32_t z = 0x12345678; ?

1 个答案:

答案 0 :(得分:1)

这样的事应该可以正常工作:

- (void)printIntInBinary:(int)num {
    NSMutableString *binaryResult = [[NSMutableString alloc] init];
    while(num) {
        [binaryResult insertString:num&1?@"1":@"0" atIndex:0];
        num>>=1;
    }
    NSLog(@"%@",binaryResult);
}

适用于您发布的所有示例!