-6

因为我在变量中分配符号,我怎么能添加ab不使用符号?++c

我知道如何使用上述数据形成表达式,如下面的代码所示,但我不知道如何使用 NSExpression 获取该表达式的输出。

这是我的代码:

int a=10;
int b=20;
NSString *c=@"+";

NSString *d=[NSString stringWithFormat:@"%d%@%d",a,c,b];

nslog(@"d=%@",d);//d=10+20

在此之后,我如何得到答案 30?

4

5 回答 5

4

如果要求 a 和 b 的和,可以:

-(-a-b)
于 2012-09-26T14:11:33.893 回答
4

使用数学,您可以将两个数字相加,而无需像这样使用加法

b*=-1
int result = a-b;
于 2012-09-26T14:12:18.270 回答
3

使用以下代码添加两个不带“+”号的数字。

int add(int x, int y) {
    int carry = 0;
    int result = 0;
    int i;

    for(i = 0; i < 32; ++i) {
        int a = (x >> i) & 1;
        int b = (y >> i) & 1;
        result |= ((a ^ b) ^ carry) << i;
        carry = (a & b) | (b & carry) | (carry & a);
    }

    return result;
}
于 2012-09-26T14:10:32.017 回答
1

您可以编写一个函数,从字符串中提取运算符(在本例中为 +)并据此进行计算。我敦促您至少观看斯坦福大学的 Paul Hegarty 编程课程的前几集。你将构建一个计算器,它会做你想知道的事情来解决你的问题。

于 2012-09-26T14:11:25.320 回答
1
int a = 10;
int b = 20;
NSString *c = @"+";

NSString *s = [NSString stringWithFormat:@"%d %@ %d", a, c, b];
NSExpression *e = [NSExpression expressionWithFormat:s];
int result = [[e expressionValueWithObject:nil context:nil] intValue];

NSLog(@"%d", result);
于 2012-09-26T15:22:17.753 回答