如何将NSInteger或NSString转换为二进制(字符串)值

0 iphone binary objective-c

有人在objective-c中有一些代码将NSInteger或NSString转换为二进制字符串吗?

例:

56 - > 111000

stackoverflow中有一些代码尝试这样做,但它不起作用.

谢谢

Jar*_*die 5

不知道SO上的哪些例子对你不起作用,但Adam Rosenfield在这里的答案似乎有效.我已经更新它以删除编译器警告:

// Original author Adam Rosenfield... SO Question 655792
NSInteger theNumber = 56;
NSMutableString *str = [NSMutableString string];
for(NSInteger numberCopy = theNumber; numberCopy > 0; numberCopy >>= 1)
{
    // Prepend "0" or "1", depending on the bit
    [str insertString:((numberCopy & 1) ? @"1" : @"0") atIndex:0];
}

NSLog(@"Binary version: %@", str);
Run Code Online (Sandbox Code Playgroud)