2009-12-15 136 views
0

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

例如:

56 - > 111000

有计算器中试图做一些这方面的代码,但它doesn't工作。

感谢

+0

请注意,如果你使用2的补码,'111000'在技术上是一个负数。 '0111000'是正数(因为领先的0) – 2009-12-15 17:38:53

回答

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); 
+0

它的工作原理 谢谢! – oscarp 2009-12-15 17:08:14

2

Tooting我自己的喇叭有点这里...

我已经写了叫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免费获得。

+0

真棒图书馆。 – uchuugaka 2013-12-24 02:06:52

相关问题