我試圖做一個應用程序來將十進制數轉換成二進制數,但是當我輸入十進制數字到一個文本字段並有一個按鈕調用binaryConvert方法時,它不斷返回111111111111111111(每個評估1) 。爲什麼是這樣??Obj C代碼不工作,是不是正確評估一個方法?
- (NSString*)binaryConvert:(int)decNum {
int i = 1;
int value = 524288;
NSString * binary = @".";
while (i <= 19) {
if ((decNum/value) >= 1) {
binary = [binary stringByAppendingString:@"1"];
decNum -= value;
} else {
binary = [binary stringByAppendingString:@"0"];
}
value /= 2;
i++;
}
return binary;
}
- (IBAction)convertToBinary:(id)sender {
int decNum = (int)textField.text;
if ([textField.text length] > 6) {
answer.text = @"Too many numbers entered.";
} else {
answer.text = [self binaryConvert:decNum];
}
[textField resignFirstResponder];
}
answer是一個標籤。
對於你正在做的更小的版本,我會建議看看這個問題:http://stackoverflow.com/questions/1908845/how -to-convert-nsinteger -nsstring-to-a-binary-string-value –
1)什麼是'value = 524288'? 2)你只是檢查整數除法的結果。您需要檢查部門的其餘部分以確定數字是1還是0. 3)確保您可以在嘗試編碼之前手動執行算法。 –
P.S.目標C正確評估方法。在責備編譯器之前責怪你的代碼是個好習慣......如果你這樣做的話,你會是正確的99.99 ...%。 –