有人在objective-c中有一些代码将NSInteger或NSString转换为二进制字符串吗?
示例:
56 - > 111000
stackoverflow中有一些代码尝试这样做,但它不起作用。
由于
答案 0 :(得分:5)
不确定SO上的哪些示例对您不起作用,但Adam Rosenfield's answer here似乎有效。我已经更新它以删除编译器警告:
// 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);
答案 1 :(得分:2)
在这里嘟嘟我自己的号角......
我写了一个名为CHMath
的数学框架来处理任意大整数。它所做的一件事是允许用户从字符串创建CHNumber
,并将其二进制表示形式作为字符串。例如:
CHNumber * t = [CHNumber numberWithString:@"56"];
NSString * binaryT = [t binaryStringValue];
NSLog(@"Binary value of %@: %@", t, binaryT);
日志:
2009-12-15 10:36:10.595 otest-x86_64[21918:903] Binary value of 56: 0111000
该框架可在its Github repository免费获取。