2014-09-24 52 views
0

我面临将目标c代码转换为二进制的问题。当我输入小数值时,它会显示输出。将十进制转换为二进制输出

例如, 12 - > 1010

但是,当我进入大的数字,它显示我的输出为“10 ...”(包括在输出点)

请帮助我。

我的程序如下:

NSUInteger x = [newDec integerValue]; 
//int y[30]; 
int i=0; 
int m =1; 

while (x != 0) { 
    int mod = x % 2; 
    x /= 2; 
    i = i + mod * m; 
    m = m * 10; 

         string = [NSString stringWithFormat:@"%d", i]; 

} 
+2

使标签变大或在设置文本后在标签上调用'sizeToFit'。 – rmaddy 2014-09-24 17:07:50

回答

0

有两个问题与您的代码。

1)您的标签尺寸可能无法适应您的字符串。所以请检查它的长度。 2)如果x的值很大,你的代码将不支持转换。原因是int容量有限。检查此question有关内置变量的内存大小。所以,考虑让你的字符串可变,并在其中添加0或1。我附上我的代码片段。

NSMutableString *string = [[NSMutableString alloc] init]; 
while (x != 0) { 
    int mod = x % 2; 
    x /= 2; 
    [string insertString:[NSString stringWithFormat:@"%d", mod] atIndex:0]; 
} 
NSLog(@"String = %@", string); 
相关问题