-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

数学を使用すると、このような加算を使用せずに2つの数値を加算できます

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

次のコードを使用して、「+」記号なしで2つの数値を追加します。

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

文字列から演算子(この場合は+)を抽出し、それに基づいて計算する関数を記述できます。スタンフォード大学のPaulHegartyによるプログラミングコースの少なくとも最初の2、3のエピソードをご覧になることをお勧めします。問題を解決するために知りたいことを実行する計算機を作成します。

于 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 に答える