兩部分兩個我的問題。這是更有效/快:長整數運算
int a,b,c,d,e,f;
int a1,b1,c1,d1,e1,f1;
int SumValue=0; // oops forgot zero
// ... define all values
SumValue=a*a1+b*b1+c*c1+d*d1+e*e1*f*f1;
或
Sumvalue+=a*a1+b*b1+c*c1;
Sumvalue+=d*d1+e*e1*f*f1;
我猜第一個是。我的第二個問題是爲什麼。
我想第三個問題是,在任何時候都有必要分解一個加法運算(除了編譯器對延長線數的限制等)。
編輯
是唯一一次我會看到一個緩慢下來的時候那麼整個運算不能在緩存合適?我認爲這是不可能的 - 在這種情況發生之前,編譯器可能會對兩行很多行繼續生氣。也許我必須明天打球並看看。
它的算術,用'e':-) – Arun 2010-10-26 05:51:53
把它們放在一個非常大的循環中,並計時。然後你會知道哪一個更快。 – abelenky 2010-10-26 06:04:03
@ArunSaha,爲什麼評論你可以編輯? :-) – ergosys 2010-10-26 08:01:02