我正在尝试创建一个将十进制数转换为二进制数的应用程序,但是当我将十进制数输入到文本字段并使用一个按钮调用binaryConvert方法时,它会不断返回111111111111111111(每个评估为1) )。这是为什么?
- (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];
}
答案是一个标签。
答案 0 :(得分:2)
int decNum =(int)textField.text; //错误
应该是:
int decNum = [textField.text intValue];
//我之前的错误答案:
// decNum - =值应该每次都进行;不仅在if((decNum / value)&gt; = 1)