Obj C代码不起作用,是不是正确评估方法?

时间:2011-11-20 03:55:13

标签: iphone objective-c xcode binary

我正在尝试创建一个将十进制数转换为二进制数的应用程序,但是当我将十进制数输入到文本字段并使用一个按钮调用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];
}
答案是一个标签。

1 个答案:

答案 0 :(得分:2)

int decNum =(int)textField.text; //错误

应该是:

int decNum = [textField.text intValue];

//我之前的错误答案:

// decNum - =值应该每次都进行;不仅在if((decNum / value)&gt; = 1)