【问题标题】:In Objective-C how can I display a uint8_t variable in binary? [duplicate]在 Objective-C 中,如何以二进制显示 uint8_t 变量? [复制]
【发布时间】:2014-09-21 06:37:18
【问题描述】:

假设我开始:

uint8_t x = 0x12;

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

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

还有 uint16_t y = 0x1234;或 uint32_t z = 0x12345678; ?

【问题讨论】:

标签: objective-c printf


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢!很好很简单,但它不打印前导零。 while 循环在插入它们之前停止。
猜你喜欢
  • 2019-03-18
  • 1970-01-01
  • 2010-10-16
  • 2020-05-26
  • 1970-01-01
  • 2019-07-15
  • 2014-04-19
  • 1970-01-01
  • 2015-12-02
相关资源
最近更新 更多