2014-09-24 55 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); 
相關問題