How to Convert NSInteger or NSString to a binary (string) value

后端 未结 2 939
野的像风
野的像风 2021-01-17 07:03

Anybody has some code in objective-c to convert a NSInteger or NSString to binary string?

example:

56 -> 111000

There are some code in stackoverflow

相关标签:
2条回答
  • 2021-01-17 07:14

    Tooting my own horn a bit here...

    I've written a math framework called CHMath that deals with arbitrarily large integers. One of the things it does is allows the user to create a CHNumber from a string, and get its binary representation as a string. For example:

    CHNumber * t = [CHNumber numberWithString:@"56"];
    NSString * binaryT = [t binaryStringValue];
    NSLog(@"Binary value of %@: %@", t, binaryT);
    

    Logs:

    2009-12-15 10:36:10.595 otest-x86_64[21918:903] Binary value of 56: 0111000
    

    The framework is freely available on its Github repository.

    0 讨论(0)
  • 2021-01-17 07:22

    Not sure which examples on SO didn't work for you, but Adam Rosenfield's answer here seems to work. I've updated it to remove a compiler warning:

    // 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);
    
    0 讨论(0)
提交回复
热议问题