如何在不使用a
符号的情况下添加b
和+
,因为我在+
变量中分配了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?
答案 0 :(得分:4)
如果你想找到a和b的总和,你可以:
-(-a-b)
答案 1 :(得分:4)
使用数学,您可以添加两个数字,而无需像这样添加
b*=-1
int result = a-b;
答案 2 :(得分: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;
}
答案 3 :(得分:1)
您可以编写一个从字符串中提取运算符(在本例中为+)的函数,并根据该函数进行计算。我恳请你至少查看斯坦福大学programming course by Paul Hegarty的前几集。你将构建一个计算器来完成你想要解决问题的东西。
答案 4 :(得分: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);