테스트를 해봤습니다.
소스코드는 다음과 같습니다.
<<덧셈연산>>
#include <iostream>
#include <boost/chrono.hpp>
using namespace std;
int main()
{
double a = 1.0;
double b = 1.1;
boost::chrono::high_resolution_clock::time_point start, end;
start = boost::chrono::high_resolution_clock::now();
for(int i=1; i< 5001; i++)
{
a +=b;
}
end = boost::chrono::high_resolution_clock::now();
cout<<end - start<<endl;
cout<< "value is "<< a << endl;
return 0;
}
<<곱셈연산>>
#include <iostream>
#include <boost/chrono.hpp>
using namespace std;
int main()
{
double a = 1.0;
double b = 1.1;
boost::chrono::high_resolution_clock::time_point start, end;
start = boost::chrono::high_resolution_clock::now();
for(int i=1; i< 5001; i++)
{
a *=b;
}
end = boost::chrono::high_resolution_clock::now();
cout<<end - start<<endl;
cout<< "value is "<< a << endl;
return 0;
}
제 환경에서는 결과가 다음과 같습니다.
회차 | 덧셈 | 곱셈 |
1 | 4226 | 6943 |
2 | 4226 | 7244 |
3 | 4528 | 7245 |
4 | 4226 | 7244 |
5 | 4528 | 7244 |
덧셈이 빠른가 봅니다.. 이유는 멀까요? 부동소숫점 연산이라 곱셈이 빠를것 같았는데..
예상 외입니다.
댓글 없음:
댓글 쓰기