在objective-c中有这个基本计算的最佳替代方法吗?

时间:2015-07-24 10:16:07

标签: ios objective-c

假设我有一个这样的实例NSInteger

NSInteger height = 100;

我想计算(全部+一半)值,所以我这样做,

NSInteger newHeight = (height + (height/2));

还有其他替代方法吗?

<子> P.S。 100值不是静态的,所以我不能直接拿150。我每次都需要计算它。

4 个答案:

答案 0 :(得分:0)

NSInteger newHeight = 1.5 * height;

我找不到另一种更容易的方式。

答案 1 :(得分:0)

您可以创建NSObject的Utility.h文件子类并在其上书写

-(NSInteger)calculate:(NSInteger) height
{
   return (height + (height/2));
}

并调用您要导入此文件的位置#import“Utility.h”

答案 2 :(得分:0)

如果省略不必要的括号,显然会变得更好&#34;

NSInteger newHeight = height + height/2;
顺便说一下:这也可行:

NSInteger newHeight = height + height>>1;

答案 3 :(得分:0)

在编译器如此擅长优化之前,你可以通过删除除法运算来加速这一点(因为除法很慢),如下所示:

NSInteger newHeight = height + (height>>1);

如果您转储生成的汇编程序,我会认为原始代码最终会被更改为此。